Pattern.k 676 B

1234567891011121314151617181920
  1. invoke {
  2. struct Point { x: Int, y: Int }
  3. let {x, y} = Point {x:1, y:2}
  4. assert x == 1 && y == 2
  5. let [u,v,w?] = [1,2]
  6. assert u == 1 && v == 2 && w is Nil
  7. let [[p,q],r,[s,t]?] = [[4,5],6]
  8. assert p == 4 && q == 5 && r == 6 && s is Nil && t is Nil
  9. var {X, Y, [Z]?:Z}? = Nil
  10. assert X is Nil && Y is Nil && Z is Nil
  11. var {U:('u'), V?:v, W} = {u:'a', W:'c'}
  12. assert U == 'a' && V is Nil && W == 'c'
  13. var [P,Q:(5),R?:(6),S,T] = [0,1,2,3,4,5]
  14. assert P == 0 && Q == 5 && R is Nil && S == 3 && T == 4
  15. let [a,_,b,c] = [0,1,2,3]
  16. assert a == 0 && b == 2 && c == 3
  17. var [A,B,_,C] = [5,6,7,8]
  18. assert A == 5 && B == 6 && C == 8
  19. }