a为mint,lat为(lamb chops and mint jelly)的情况下,(rember a lat)的结果是什么?

4 views
Skip to first unread message

潘飞

unread,
Jun 15, 2011, 4:24:12 AM6/15/11
to lisp-...@googlegroups.com
a为mint,lat为(lamb chops and mint jelly)的情况下,(rember a lat)的结果是什么?
    (lamb chops and jelly), rember代表删除一个成员。

a为mint,lat为(lamb chops and mint flavored mint jelly)的情况下,(rember a lat)的结果是什么?
    (lamb chops and flavored mint jelly)

a为toast,lat为(coffee cup tea cup and hick cup)的情况下,(rember a lat)的结果是什么?
    (coffee tea cup and hick cup)

(rember a lat)做了什么?
    接收一个原子和一个列表作为参数,将列表中第一次出现的这个原子删除掉,返回一个新的列表

我们做这个的步骤是什么?
    第一,我们测试(null? lat)——第一个戒条

如果(null? lat)是真的,会怎样?
    返回()

如果(null? lat)不是真的,我们得出什么结论?
    我们知道至少有一个原子存在于这个列表中

我们还要问询关于这个列表的其它问题吗?
    没有了,一个列表要么是空的,要么至少有一个原子

如果我们知道lat至少有一个原子,我们要做什么呢?
    我们询问a是否和(car lat)相等。

我们怎样问询问题?
    通过使用:
        (cond
          ( ________  ____________)

          ( ________  ____________))

我们怎么询问a和(car lat)是相等的?
    (eq? (car lat) a)

如果a和(car lat)是相同的,那么(rember a lat)的值是什么?
    (cdr lat)

如果a和(car lat)不相同,那我们做什么?
    我们要记住(car lat),也要确定a是否在lat剩余的部分中。

我们怎样删除lat中第一次出现的a?
    (rember a (cdr lat))

还有我们需要询问的问题吗?
    没有了



--
Stay Hungry. Stay Foolish.

Reply all
Reply to author
Forward
0 new messages