cryptol/docs/Version2Table.md

27 lines
1.8 KiB
Markdown
Raw Normal View History

2014-04-18 02:34:25 +04:00
<!---
Run this through pandoc, then use your favorite PDF editor to "crop" the pdf down to just the table.
This is wacky, but seems to be the best way to get the table to fit in the document margins.
-->
Summary of Changes
------------------
**Cryptol version 2** | **Cryptol version 1** | **Summary**
---------------------------- | -------------------------------- |--------
`[ False, True, True ] (==3)` |`[ False True True ] (== 6)` | Big-endian word representation
`[ 1, 1, 2, 3, 5 ]` |`[ 1 1 2 3 5 ]` | Commas separate sequence entries
`x = 1` |`x = 1;` | Uses _layout_ instead of `;`'s and `{`'s
`[ x \| x <- [1 .. 10] ]` |`[\| x \|\| x <- [ 1 .. 10] \|]` | Cleaner sequence constructor syntax
2014-04-18 02:34:25 +04:00
`f : {a,b} a -> b` |`f : {a b} a -> b` | Commas separate type variables
``take`{1} xs`` |`take(1, xs)` | First-class type parameters
`x ^^ 2` |`x ** 2` | `^^` for exponentiation
`<\| x^^2 + 1 \|>` |`<\| x^2 + 1 \|>` | Polynomial exponentiation now uniform
2014-04-18 02:34:25 +04:00
`[0 ..]:[_][8]` |`take(255, [0 ..]:[inf][8])` | Both produce `[0 .. 255]`
`[0 ...]:[inf][8]` |`[0 ..]:[inf][8]` | Both produce `[0 .. 255]`(repeated)
`[9, 8 .. 0]` |`[9 -- 0]` | Step defines decreasing sequences
`&&, \|\|, ^` |`&, \|, ^` | Boolean operator syntax
`(1,2,3).0 (== 1)` |`project(1,3,(1,2,3)) (==1)` | Tuple projection syntax (and 0-based)
2014-04-18 02:34:25 +04:00
`property foo xs=...` |`theorem foo: {xs}. xs==`... | Properties replace theorems (see below)