1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
fn fib(n: i32): i32 {
val msg = if (n == 0) "No points" else "Some points"
val msg = if n == 0 { "No points" } else { "Some points" }
val msg = if n == 0: "No points" else: "Some points"
if n == 0 || n == 1 {
return n;
}
var grandparent = 0;
var parent = 1;
var me = 0;
for i in 0..n-1 {
me = parent + grandparent;
grandparent = parent;
parent = me;
}
return me;
}
pub type Button = {
pub x: i32,
pub y: i32,
text: String,
}
impl Button {
fn init(text) {
return Self(
x: 50,
y: 150,
text, # Pass in text
)
}
}
impl Constructor for Button {
fn init(text) {
Self(
x: 50,
y: 150,
text, # Pass in text
)
}
}
Button::init("Hello")
Button("Hello")
print(fib(0));
print(fib(1));
print(fib(2));
print(fib(3));
print(fib(4));
print(fib(5));
# Inferred as List
val nums = read("input.txt")
.lines()
.filter(-> /$[0-9]+^/ in $0)
.collect()
fn T <- From<Self> = List collect(self): T {
}
fn collect(self): 'a
where
'a : From<Self>, # Type Constraints
'a = List, # Generic Defaults
'a : From<Self> = List, # Combined
{
#
}
# This following code should
fn add(lhs, rhs) {
return lhs + rhs;
}
# Ideally infer to
fn add(lhs: 'a, rhs: 'b): 'c
where
'a : Add<'b, 'c>,
'b = 'a,
{
return lhs + rhs;
}
|