Github 传送门:https://github.com/bramblex/Smooth
线上试用:http://bramblex.github.io/Smooth/
# 异步的 delay 函数
delay = `(ms)=>(f)=>setTimeout(()=>f(ms),ms)`
# 将一个普通的函数封装成异步函数
mkasync = `(job)=>(f)=>{job();f()}`
# 将多个异步函数串联到一起
async f g = f g
# 以同步的方式写异步,每隔一秒依次输出 "hello" "world" "smooth"
asyncJob = with async do
delay 1000
mkasync \_-> print $ "hello"
delay 2000
mkasync \_-> print "world"
n <- delay 3000 # 还可以取得异步函数的数据
mkasync \_-> print $ "smooth " + n
main _ = asyncJob \_ -> print "done"
# 定义 `+` 符号
infixl 4 + add
add = `(x)=>(y)=>x+y`
# 定义 `<` 符号
infixl 6 < lt
lt = `(x)=>(y)=>x<y`
# 定义 `$` 符号,用来消除括号
infixr 0 $ app
app f x = f x
# 定义 `+` 符号
infixl 4 + add
add = `(x)=>(y)=>x+y`
# 定义 `<` 符号
infixl 6 < lt
lt = `(x)=>(y)=>x<y`
impFunc n =
let result = 0
let i = 0
while i < n
result = result + i
i = i + 1
decFunc n = if n < 0 then 0 else n + decFunc n
1
southwolf 2016 年 5 月 24 日
生日快乐!
|
3
Slienc7 2016 年 5 月 24 日
🎉生日快乐🎉
|
4
lichun 2016 年 5 月 24 日
happy birthday
|
5
shyling 2016 年 5 月 24 日 via iPad
`我不是 js`
|
8
ctsed 2016 年 5 月 24 日 via iPhone
明年就可以一起过生日了
|
9
mactaew 2016 年 5 月 24 日 via iPhone
黑皮波斯忒
|
10
zzNucker 2016 年 5 月 25 日
迟到的生快~!
|
11
aprikyblue 2016 年 5 月 25 日 via Android
快生
|
12
upczww 2016 年 5 月 25 日 via Smartisan T1
膜拜大神,生日快乐,好像晚了
|
13
justjavac 2016 年 5 月 25 日 via Android
生日快乐\^O^/
|
14
4679kun 2016 年 5 月 25 日 via Android
迟到的生快(=゚ω゚)=
|
15
msg7086 2016 年 5 月 25 日
这位姐姐生快~
|
16
hewigovens 2016 年 5 月 25 日
github 上的 readme 发现一处错别字,“其本质就是一个简单的 CPS 变幻” 应为 “变换”?
|
17
xiamx 2016 年 5 月 25 日
生日快乐!
|
18
linux40 2016 年 5 月 25 日 via Android
完成之后马上弃坑么。。。
|
19
bramblex OP @hewigovens 对… cps 变换,输入法的锅
|
21
bramblex OP |
23
xcodebuild 2016 年 5 月 25 日 via Android
生日快乐🎉🎉
|
24
chunqiuyiyu 2016 年 5 月 25 日
虽然看不懂,但是并不妨碍我说一句“生日快乐”
|
25
iphantom 2016 年 5 月 25 日
生快
|
26
yuankui 2016 年 5 月 25 日
需要哪些准备才能造一门语言?
|
27
silvernoo 2016 年 5 月 25 日
生快
|
28
w466397352 2016 年 5 月 25 日
生日快乐\^O^/
虽然我也看不懂 |
29
scarlex 2016 年 5 月 25 日
生日快乐 ~
|
30
baocaixiong 2016 年 5 月 25 日
生日快乐
|
32
bramblex OP |
33
bramblex OP |
34
guizer 2016 年 5 月 25 日
生快 代码什么的看不懂...
|
35
bramblex OP |
36
donghouhe 2016 年 5 月 25 日
服服服服服
|
37
sinalvee 2016 年 5 月 25 日
虽然我也看不懂,但是生快!
|
39
gimp 2016 年 5 月 25 日
JJ 生日快乐~
|
41
sdenvi 2016 年 5 月 25 日 via iPhone
生日快乐
|
42
timhal 2016 年 5 月 25 日
啊 我明天呢╮( ̄⊿ ̄")╭被你抢先一步
|
43
Lothar 2016 年 5 月 25 日
没写过 haskell 的表示看起来真要命 😂 (生快
|
44
superxzr 2016 年 5 月 25 日
大触生快
|
45
gamexg 2016 年 5 月 25 日
生日快乐
|
46
timeship 2016 年 5 月 25 日
生日快乐么么哒,感觉认识好久了
|
50
wsph123 2016 年 5 月 25 日
生日快乐!
|
52
narrowei 2016 年 5 月 25 日
╮(╯▽╰)╭生日快乐🎂
|
53
SCaffrey 2016 年 5 月 25 日 生日快乐\^O^/
|
54
Exin 2016 年 5 月 25 日 又是个做编译器的大神
|
55
timeback 2016 年 5 月 25 日 好吧,不认识,一样恭祝:生日快乐!!!🎂🎂🎂
|
57
jamesarch 2016 年 5 月 25 日
生日快乐
|
58
cha1 2016 年 5 月 25 日
生日快乐🎉🎉🎉! Star 一个先! ヽ(́◕◞౪◟◕‵)ノ
|
61
hhkbp2 2016 年 5 月 25 日
路过并支持
自制语言其中的苦乐是一种很特别的经历 |
63
abcdabcd987 2016 年 5 月 25 日
哇塞, CPS 变换,比我前不久写的渣渣编译器厉害多了( http://v2ex.com/t/279656#reply2)
|
64
guyskk 2016 年 5 月 26 日
生日快乐!
mkasync 要是改成 await ,当作关键字,就跟 python3.5, es6, c# 的异步差不多了 |
66
bramblex OP |
67
bramblex OP |
68
bramblex OP |
69
6ufq0VLZn0DDkL80 2016 年 5 月 26 日
为什么用 purescript 写,这语言有什么优越之处?
|
71
Aidea 2016 年 5 月 26 日
好屌,虽然看不懂,但还是生日快乐~
|
72
dant 2016 年 5 月 26 日 via Android
JJ 的思念生日快乐(
|