强撸MIT之6.001

强撸MIT之6.001

见识一下传说中的MIT新生入门手册hhh


Materials


Environment

Scheme Implementation

书里用的是MIT-Scheme
不过Racket的REPL更加棒,而且它有个SICP包提供对SICP的支持(在REPL模式下启用这个包: racket -i -p neil/sicp -l xrepl),还有个挺好用的IDE:DrRacket

Vim Configuration

实现的功能跟这篇博客几乎差不多(该文文末有视频展示)
不过实现的方法几乎完全不同hhh

实时解释程序
首先安装插件vimshell(该插件依赖于另一个插件vimproc
然后在配置文件 ~/.vimrc里添加以下几行

于是在Vim里运行 :SICP则会在右分屏开启Racket的REPL模式作为Interpreter
左分屏用来编辑代码,通过 <Shift+v>框选代码后,按 <F6>即可发送代码到右分屏的Interpreter,并自动执行(超方便)
(Racket和vimshell其实不完全兼容,偶尔会遇到错误,这时通过 :bd:SICP重启Vimshell直到没事为止🙂顶多几次就好了hhh已报issue暂未解决🙂

括号高亮
首先安装插件rainbow
然后在配置文件 ~/.vimrc里添加一行 let g:rainbow_active = 1

括号补全
首先安装插件auto-pairs
然后在配置文件 ~/.vimrc里添加一行 autocmd filetype lisp,scheme,art let g:AutoPairs = {'(':')'}

缩进
vim本身的缩进也不坏,不过有时会有些问题(而且我比较喜欢if的then语句和else语句跟条件语句对齐)
执行以下语句

然后在配置文件 ~/.vimrc里添加一行 autocmd filetype lisp,scheme,art setlocal equalprg=scmindent.rkt
于是在Vim里通过 <Shift+v>框选代码后,按 =即可调整缩进


Chapter 1 Building Abstractions with Procedures

Chapter 2 Building Abstractions with Data

Chapter 3 Modularity, Objects, and State

Chapter 4 Metalinguistic Abstraction

Chapter 5 Computing with Register Machines


One thought on “强撸MIT之6.001

Leave a Reply