June 20th Wednesday (六月 二十日 水曜日)

本文讨论了MIT将Scheme替换为Python作为计算机程序解释的基础语言的教学改革,并比较了这两种语言的特点。作者认为尽管Python实用且有趣,但在灵活性及表达能力上不及Scheme。文中还探讨了Scheme与其他语言如Prolog、Haskell之间的联系,以及如何通过Scheme来理解Haskell的惰性求值等概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  I am going to put scheme away for time.  I found MIT modify its curriculum for
the interpretion of computer program, they substituted python language for scheme
language.

  Python is a interesting and useful language.  However, in my eyes, its flexibility
and expression is not more than scheme.

  I studyed prolog language.  It is easy to implement in scheme.  I studyed Haskell too.
If a scheme programmer learning Haskell, he can pick out the secret under color of
Haskell grammer.  What is lazy evaluation?  If you know how to implement the lazy evaluation,
the problem is so easy for you.  Haskell is just a little sister of scheme.

(defun in-set (e ls)
  (cond ((null ls) nil)
 ((equal e (car ls)) t)
 (t (in-set e (cdr ls)))))

(defmacro map (pred ls)
  (list 'mapcar pred ls))

(map (lambda (x) (+ 1 x)) (list 1 2 3))

(mapcar (lambda (x) (car x)) (list (cons 1 2) (cons 3 4) (cons 5 6)))

(defun reverse-list (ls)
  (let (val)
    (dolist (e ls val)
      (setq val (cons e val)))))

(defun set (ls)
  (let (rs)
    (dolist (elt ls rs)
      (if (not (in-set elt rs))
   (setq rs (cons elt rs))))))

(set (list 1 2 3 3 4 8))

(defun fib (n)
  (if (or (= n 0) (= n 1)) 1
    (+ (fib (- n 1)) (fib (- n 2)))))

(fib 10) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值