今天在CSDN上丢了两篇文章,也促使我开始注意博客系统的使用方法。现在发现的问题有:
1. 草稿箱好像只能保存一篇文章,其他文章我怎么都保存不到草稿箱
2. 编辑文章不保存或不发表,文章莫名从文章列表里“丢失“
不知是产品缺陷,还是有意为之,我先把文章补上,这是其一。
进入问题之前,先说一说列表是什么,我们可以类比C/C++中的链表。按R7RS中所说,它可递归定义为:(1) 要么为空,即'()
,(2)要么是一个pair,其cdr
是列表。pair是一个二元对偶,跟std::pair
类似。可用标准函数list?
判断是否是一个有效列表。
以后的问题除特别说明,参数ls
都为有效列表。
进入问题:
Example:
sash> (my-last '(a b c d))
sash> d
这是原先我给出的三种解决方案:
(1)自己造轮子
Scheme内置的列表本质上是单链表,要查找最后一个元素,只能依次遍历列表,找到其cdr
为'()
的列表,并返回其car
。如
(define my-last
(lambda (ls)
(if (null? ls)
(raise 'not-found)