GH-196 pattern matching lhs (#210)

* Allow block with separate type signature and definition of a function

For instance,
```
function
  add : (int, int) => int
  add(x, y) = x + y
```

cc #196

* Allow pattern matching in left-hand sides

* Changelog

* Fix type spec

* partial case-on-constructor

* Changelog for pattern-matching lets
This commit is contained in:
Ulf Norell
2020-01-15 09:41:03 +01:00
committed by GitHub
parent f7abaf07fa
commit 4d4a14a9ab
15 changed files with 315 additions and 147 deletions
+4 -4
View File
@@ -11,7 +11,7 @@ contract Factorial =
stateful entrypoint set_worker(worker) = put(state{worker = worker})
entrypoint fac(x : int) : int =
if(x == 0) 1
else x * state.worker.fac(x - 1)
entrypoint
fac : int => int
fac(0) = 1
fac(x) = x * state.worker.fac(x - 1)