λ演算&函数式编程
等待填坑
摸鱼一时爽
函数式编程(Functional Programming)好像比面向对象抽象程度更高。但是之前折腾硬件的时候都没有用到过,可能是不太适合处理IO接口和操作时序吧。
之前在图书馆乱翻,看到一本七周七语言的书,翻到函数式,感觉还挺有意思,教研室的摸鱼生活就搞点这个吧,反正干正事是不可能干正事的正在进JavaScript的坑,将就着用js来练练手吧。
javascript味不对,还是直接上了Lisp
λ演算(λ-calculus)
- 是匿名的
- 只有一个输入
多输入的函数要转成多个只有一个输入的函数的嵌套调用,也就是柯里化(currying)
$\lambda$项
附
环境配置
Arch下安装mit-sheme包就好了,SICP的练习环境。这个操作基本跟Emacs差不多,是SICP的作业环境。
yay -S mit-scheme
不过我用的是这个Chez Scheme,前几年开源了的东西,速度很快
yay -S chez-scheme
运行直接
scheme < test.scm
就好了
我不习惯Emacs的快捷键,都是在vscode里写的,装一个vscode-scheme插件就好了。可以在code runner插件里配置一下,然后按快捷键运行
"code-runner.executorMap": {
".scm": "scheme < ",
"scheme": "scheme < ",
}
详见 https://github.com/cisco/ChezScheme