寒假前接触到essentialsof program languages这本书,里面的符号让人望而却步,心想这是什么奇怪的语言,一眼看上去逻辑性很强,但是完全读不懂,一直沉溺在痛苦之中。今天才知道是scheme。想到将来可以自己写一个解释器,便不觉得难了,反而觉得多了很多乐趣。
作为VScode忠实粉丝,自然选择用此来作为开发环境,首先要先从官网下载scheme:
https://github.com/cisco/ChezScheme/releases/tag/v9.5.8
然后要将路径添加到环境变量里的path里,我的地址是C:\ProgramFiles\Chez Scheme 9.5.8\bin\ta6nt,路径每个电脑可能不一样,找到路径复制即可。
下一步是打开cmd输入scheme查看是否安装成功
然后需要在vscode中下载
完成后要设置json。
ctrl+shift+p,输入code-runner.executorMap,设置进去里面添加
"scheme":"scheme --script $fullFileName",
继续搜索code-runner.executorMapByFileExtension里面添加
".scm": "scheme",
".ss": "scheme",
注意报错,如果下面产生红线提示有重复的定义,留我这一个,把电脑上本来有的另一个删掉。
然后就愉快的下载配置完成了。
一点点知识总结:
(exact->inexact(/ 29 3 7))--------1.380...
嵌套(*(+ 2 3)(- 5 3))---10
(quotient 7 3)---------2
(modulo 7 3)---------1
(sqrt 8)--------2.828
三角函数:sin cos tan asin acos atan...
指数: exp
(* 2 (asin 1))--------3.14...
(* 4 (atan 1))--------3.14...
(cons 1 2)------1 . 2
(cons 3(cons 1 2)------(3 1 . 2)
car: contents of the address part of resgister寄存器地址
cdr: the decrement part of the resgister 寄存器的减量部分
不同类型 (cons #\a (cons 3 "hello))
(#a 3. "hello")
(cons(cons( 0 1) (cons 2 3)-------((0 . 1) 2 . 3)
quote可以避免被取值
quote(+ 2 3)--- (+ 2 3)
(car'(1 2 3 4))--------1
(cdr' (1 2 3 4)) (2 3 4)
list函数(目前感觉只是打括号用)
(list(1))----------------(1)
list((1 2) '(3 4) ---------((1 2 )(3 4))
先到这里,太困了。感觉这是一个括号以及空格比较严格的语言,看书上也充满逻辑,每天都学一点。