好好学习scheme

以下内容只是我的学习记录笔记

很早之前看过《黑客与画家》,对lisp心生向往,之后认识的大神推荐《计算机程序的构造与解释》,之前一段时间看了一点,然后又中断了。决定开始好好学习,重新拿起那本已经泛灰的老书。
首先你可能会问为什么要学lisp这一门古老的编程语言?作为一名小白,显然是没办法回答你这个问题的…看看王垠大神怎么说的吧,Lisp 已死,Lisp 万岁!
首先你得配置下scheme相关的环境对吧,然后当然我又扔给你一个链接,还是王垠大神的,希望以后自己能够早日修炼成神,不用到处扔别的大神的链接,Scheme 编程环境的设置
如果你用的mac或者linux,应该很快就把环境给配置好啦,然后接下来的问题就是,卧槽,emacs是什么东西,作为一名程序员,你当然听过,(没听过的也假装听过,反正现在听过了),但是,问题来了,你并不会用,我也不会,作为一个习惯各种ide编辑器或者vim党的程序员,不会用emacs还是很正常的…默默的在心里默念,自己怎么这么渣。
那就好好学吧,网上找找教程,先学学基本的吧,比如说 Emacs入门系列:3分钟学会Emacs基本操作,说好的3分钟,其实都是骗人的,不过拿来入门是不错的,感觉写的挺好的。或者直接看emacs的tutorial,随便你吧。加一个,发现一篇很不错的文章, 一年成为Emacs高手(像神一样使用编辑器)
然后我先去好好学习一些emacs的基本操作吧,等我一天,然后继续来闲聊。
ps:我用的mac,emacs版本24.5.1

Day 1 Emacs 基本操作

设置终端下的meta键

iTerm2 的话在 "Preferences" -> "Profiles" -> "your Profile" -> "Keys" -> 界面的右下角有关于 left/right option key 的映射配置,改成 +Esc 就可以了。
系统自带终端的话类似。linux的话应该没有这类问题。

光标移动

光标移动先掌握以下12个吧,其他的再说,之后有时间可以搞个图便于理解
ctrl 相关(小范围内的移动)
ctrl+p: 上一行 (previous)
ctrl+n: 下一行 (next)
ctrl+b: 前一个字符 (backward)
ctrl+f: 后一个字符 (forward)
ctrl+a: 行首 (a是第一个字母)
ctrl+e: 行尾 (end)

meta相关(mac改过配置之后就是alt/option键)
M+b: 向前一个单词
M+f: 向后一个单词
M+{: 段首
M+}: 段位
M+<: 文档首
M+>: 文档尾

还是再加几个吧
ctrl+v: 下移一屏
M+v: 上移一屏
M+g M+g:Emacs会要求输入行号,移动光标到指定行

好了,现在你可以在字符间自由的游动了!优秀!

至于设置行号显示,只要在~/.emacs里面加上
;;show line number (global-linum-mode 1)
如果不行的话,那么可能你的emacs版本太低,自己解决吧你,或者升级一下吧。

删除

删除还是很重要的对不,嗯嗯对,好,那来学点删除的命令吧

ctrl+d: 删除光标所在处字符
backspace: 删除光标前一个字符(这个就是我们常用的删除键啦)
M+d: 删除单词光标之后的部分
M+backspace: 删除单词光标之前的部分
ctrl+k: 删除从光标到行尾
M+k: 删除从光标到句尾

感觉删除还是没有vim用起来方便啊,或者学的太少不习惯…
比如假如要删除到行首怎么办?不像vim那样d+0就可以,你得怎么做?
首先你得先学一下选中这个命令
ctrl+@: 选择
然后再按ctrl+a跳到行首,然后
ctrl+w剪切
M+w复制
ctrl+y 粘贴

好了,今天就学这么多吧,休息休息,该干嘛干嘛去吧:)

感觉好像偏离正题了,我们是要学习scheme的!好吧,emacs的操作就不再介绍了,大家自己慢慢折腾去吧,先把最简单的掌握了就好。
ctrl+x ctrl+c: 保存并退出
如果想不保存退出的话,直接kill吧,ctrl+z

下面开始正式的学习啦,我用的自学教材是《计算机程序的构造和解释》,当当、亚马逊之类的一搜就有,不要吝惜那几十块钱哈,买买买!
然后渣渣们做题不会了怎么办,看看大神们的答案吧…

Day 2 程序设计的基本元素

  • 表达式
  • 组合的方法
  • 抽象的方法

前缀表达式的优点

  • 不会出现歧义
  • 可以直接扩充

环境所扮演的角色就是用去确定表达式中各个符号的意义。

定义的一般形式(define (<name> <formal parameters>) <body>)

过程应用的代换模型

  • 应用序:先求值参数后应用(lisp采用:避免对表达式的重复求值)
  • 正则序:完全展开后归约

来看一道题目:
ex1.5:
Ben Bitdiddle发明了一种检测方法,能够确定解释器究竟采用的哪种序求值,是采用正则序,还是采用应用序,他定义了下面两个过程:

(define (p) (p))
(define (test x y)    
  (if (= x 0)         
    0         
    y))

而后他求值下列的表达式:
(test 0 (p))
假如是应用序的话就会死循环,假如是正则序则很快算出结果0。

在数学里,人们通常关心的是说明性的描述(是什么),而在计算机科学里,人们则通常关心行动性的描述(怎么做)。

比如平方根的问题,以下是代码,大家感受一下。

(define (sqrt x)
  (sqrt-iter 1.0 x))
(define (sqrt-iter guess x)
  (if (good-enough? guess x)
      guess
      (sqrt-iter (improve guess x) x)))
(define (good-enough? guess x)
  (< (abs (- guess x)) 0.001))
(define (improve guess x)
  (average guess x))
(define (average x y))
(define (abs x)
  (if (< x 0))
  -x
  x)

过程的形式参数名必须局部于有关的过程体。

(待续)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容