【问题标题】:Using list tail in scheme在方案中使用列表尾
【发布时间】:2014-04-17 17:49:10
【问题描述】:

这是我第一次在方案中使用 list-tail 并且我遇到了输出问题。我有一个非常简单的程序是

(define(printlist n numbers)
(list-tail (list)n))
 (printlist 2'(5 3 3 5 5))

我正在尝试打印列表中的最后 2 个数字。我收到一个错误,但我不确定我做错了什么。我在网上查看了几个示例,但找不到解决方案。

【问题讨论】:

  • list 是一个过程。当您执行(list 'a) 时,您将创建一个包含一个元素a 的列表。 (list) 返回空列表()

标签: scheme racket


【解决方案1】:

documentation for list-tail:

(define (last-n-elements n lst)
  (list-tail lst (- (length lst) n)))

(last-n-elements 2 `(5 3 3 5 5))

它需要 2 个参数:列表和要跳过的元素数。 因此,如果您想要列表的最后一个 n 元素,您可以跳过 length(list) - n 字符。

【讨论】:

  • 我在想我需要做些什么来获取列表的前三个数字。 list-ref 是否适合这样做?
  • list-ref 返回给定索引处的元素,因此它可以帮助您构建自己的 list-head 函数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-25
  • 2017-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-17
相关资源
最近更新 更多