牛客网考题:
已知广义表: A=(a,b), B=(A,A), C=(a,(b,A),B), 求下列运算的结果:
tail(head(tail(C))) =( )
head() 返回列表的第一个元素;
tail() 返回列表的删去第一个元素之后的剩余列表;
所以,
tail(C)=((b,A),B);
head(tail(C))=head( ((b,A),B) )=(b,A)
tail(head(tail(C)))=tail((b,A))=(A)
注意,head返回的是元素(去掉最外层括号),tail返回的是集合(保留括号)。
例:LS=(a,(b,c,d))
head(LS)=a
tail(LS)=((b,c,d))
head(tail(LS))=(b,c,d)
tail(tail(LS))=()
head(head(tail(LS)))=b
tail(head(tail(LS)))=(c,d)
head(tail(head(tail(LS))))=c
tail(tail(head(tail(LS))))=(d)
head(tail(tail(head(tail(LS)))))=d
tail(tail(tail(head(tail(LS)))))=()
转载地址:http://blog.sina.com.cn/s/blog_4d6e44860100c1fb.html