下一个问题是什么

4 views
Skip to first unread message

潘飞

unread,
Jun 9, 2011, 4:06:28 AM6/9/11
to lisp-...@googlegroups.com
下一个问题是什么?
    else

为什么else是下一个问题?
    因为我们不需要询问更多的问题了。

else真是一个问题吗?
    是的,else是一个值永远为真的问题

这一行的意思是什么:(else (or (eq? (car lat) a) (member? a (cdr lat)))) ?
    现在我们知道lat不是空了,我们必须搞清楚lat的car是否是院子a,或者a是否在lat剩余的部分中。这个语句的作用就是这样的。

真还是假?:(or (eq? (car lat) a) (member? a (cdr lat)))),其中a是meat,lat是(mashed potatoes and meat gravy)
    我们将按照问题的顺序来说明

(eq? (car lat) a) 是真还是假?:其中a是meat,lat是(mashed potatoes and meat gravy)
    假,因为meat与mashed((mashed potatoes and meat gravy)的car)不eq?

or的第二个问题是什么?
    (member? a (cdr lat)) .通过将参数lat替换成(cdr lat)来引用函数

现在,member?函数的参数是什么?
    a是meat,lat现在是(cdr lat),也就是(potatoes and meat gravy) 

下一个问题是什么?
    (null? lat),记住第一个戒条。

(null? lat)是真还是假呢?(这里lat是(potatoes and meat gravy) )   ?
    假

现在我们要做什么?
    问下一个问题

下一个问题是什么?
    else

(or (eq? (car lat) a) (member? a (cdr lat)))是什么意思?
    查明lat的car是否和a是eq?的或者通过调用这个函数查明a是否是lat的cdr中的成员

a和lat的car eq?吗?
    不,因为a是meat,lat的car是potatoes

我们下面做什么?
    我们询问(member? a (cdr lat))

现在,member?的参数是什么了?
    a是meat,lat是(and meat gravy)

下一个问题是什么?
    (null? lat)

我们现在做什么?
    因为(null? lat)是假的,所以我们询问下一个问题。

下一个问题是什么?
    else

(or (eq? (car lat) a) (member? a (cdr lat)))的值是什么?
    是(member? a (cdr lat))

为什么?
    因为(eq? (car lat) a)是假的。

我们现在做什么?
    反复--使用新的参数来引用函数

新的参数是什么?
    a是meat,lat是(meat gravy)

下一个问题是什么?
    (null? lat)

我们现在做啥?
    因为(null? lat)是假的,询问下一个问题。

下一个问题是什么?
    else

(or (eq? (car lat) a) (member? a (cdr lat)))的值是什么?
    T,因为(car lat)是meat,并且a也是meat,是同一个原子。所有(or ...)回答T

那么(member? a lat)的值是什么,其中a是meat 并且lat是(meat gravy)
    T,因为我们发现meat是(meat gravy)的一个成员

那么(member? a lat)的值是什么,其中a是meat 并且lat是(and meat gravy)
    T,因为meat也是(and meat gravy)的一个成员

那么(member? a lat)的值是什么,其中a是meat 并且lat是(potatoes and meat gravy)
    T,因为meat也是(potatoes and meat gravy)的一个成员

那么(member? a lat)的值是什么,其中a是meat 并且lat是(mashed potatoes and meat gravy)
    T,因为meat也是(mashed potatoes and meat gravy)的一个成员,当然,这也是我们的最初的lat了

--
Stay Hungry. Stay Foolish.

Reply all
Reply to author
Forward
0 new messages