Skip to content

Comparison With JavaScript

Ayush Jain edited this page Feb 27, 2016 · 24 revisions

Literals

JS JSJS
3 3
3.1415 3.1415
"Hello World!" "Hello World!"
'Hello world!' Cannot use single quotes for strings
true true
[1,2,3] [1,2,3]
{ "foo" : "1", "bar" : "2" } { "foo" : "1", "bar" : "2" }

Strings

JS JSJS
'abc' + '123' "abc" ^ "123"
'abc'.length String.length("abc")

Maps

JS JSJS
x["foo"] = "1"; Map.set(map, "foo", "1");
x["bar"] = "2"; Map.set(map, "bar", "2");

Functions

JS JSJS
function(x,y) { return x + y; } /\(x : num, y : num) : num => x+y;
List.map(function(x) { return x*x; }, [1, 2, 3, 4]); List.map((/\(x : num) : num => x * x ), [1, 2, 3, 4]);
Math.max(3, 4) Math.max(3, 4)
var filter = function(f, xs) { ... } val filter = /\(f: (num) -> bool, xs: list num): list num => { ... }

Assignments

JS JSJS
var x = 10 val x : num = 10
var x = 'foo'; val x : string = "foo";
var x = true; val x : bool = true;
var x = [1,2,3]; val x : list num = [1,2,3];
var x = { "foo" : "1", "bar" : "2" }; val x <string : string> = { "foo" : "1", "bar" : "2" };
var x = function(x, y) { return x+y; } val sq : (num) -> num = /\(x) => x+y;

Control Flow

JS JSJS
if(x > y) { return x; } NA, else construct necessary
if(x > y) { return x; } else { return y; } if(x > y) then { x; } else y;
return 42; No return statements, since everything is expression

Clone this wiki locally