回 帖 发 新 帖 刷新版面

主题:广义表的计算题(easy版)

(5)head(tail(((a,b),(c,d))))=(c,d);
 (6)tail(head(((a,b),(c,d))))=(b).
5题明白   先是tail(....)得出  (c,d)    然后head(...)  结果是(c,d)
那么6题  显示head(...)得出(a,b) 然后tail 应该得出()才对么

怎么结果是(b)


如果六题结果是从head(c,d) 计算

是不是5题的结果 应该是(c)才对。。

迷糊 .....


  

回复列表 (共5个回复)

沙发

第(6)题答案没错,先是head(((a,b),(c,d)))取表头元素的答案是(a,b),
然后是对(a,b)取表尾操作tail((a,b)),注意,
广义表的表尾定义是:取出表中第一个元素后,
其余元素够成的表是它的表尾,显然,这里表(a,b)取出表头元素a后,
只剩下元素b,元素b够成的表是(b),
这就是tail(head(((a,b),(c,d))))这结果

这两题答案都没错,这类问题很容易搞错,弄得人脑子糊里糊涂,不过对概念清楚了就不会出现这种问题了

板凳

这么说
第五题head(tail(((a,b),(c,d))))=(c,d);
 先tail(....) 取出(c,d)
再head(....),最后结果应该是(c)
才对么?

3 楼

第五题先tail(...)是((c,d))   注意是两个括号  

再head(((c,d)))是(c,d)

请细看 头 跟 尾 的定义

4 楼

迷糊!

5 楼

迷糊!

我来回复

您尚未登录,请登录后再回复。点此登录或注册