P01 (*) 获取列表最后一个元素【重补】

今天在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)
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值