Linux考试试卷评讲(5)

==========
附加题部分
==========

1.请用lambda函数给出car, cdr, cons的定义。(本题100分)
评讲:本题对于大二大三的同学来说颇有深度,本题的主要目的是考察是否有理论方面的
高手出现。结果还算不错,大部分人给出的都是我复习课上讲得例子,而不是定义。极少
数人给出了基于Lambda的定义,虽然那也是从讲义上抄来的,只能够说准备的很充分而已
,但也相当不容易了。不过最让我惊讶的是有人用Python的lambda函数给出了定义。虽然
实际上这样做更为简单一点,不过考虑到我根本就没讲python的lambda函数,而且对pyth
on也不做要求,在这种情况下能够给出这个结果,可见这位同学具有相当强的独立学习能
力。本题答案:
(define car
(lambda (x)
(x (lambda (x y) x))))

(define cdr
(lambda (x)
(x (lambda (x y) y))))

(define cons
(lambda (x y)
(lambda (t)
(t x y))))

2.请解释著名的阴阳迷题:(本题100分)
(let* ((yin ((lambda (foo) (newline) foo)
(call/cc (lambda (bar) bar))))
(yang ((lambda (foo) (write-char #\*) foo)
(call/cc (lambda (bar) bar)))))
(yin yang))
评讲:有同学很气愤的说“这个老师自己都不懂,还来考我们”,呵呵。本题的主要目的
还是考察是否有理论方面的高手出现,因此不会做的同学就当作我没出这题好了。想了解

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/835e40460eebed6346801814f80a3e2f.html