如何用方案语言实现以下?

时间:2015-10-05 01:57:47

标签: functional-programming scheme racket

我试图用方案语言得到以下输出。谁能告诉我哪里错了?我想在最后添加.z,而不是获取它。我怎么能?

代码:

(define (countup n)

 (define (help i)

  (if (<= i n)

   (cons 's (help (+ i 1)))

  '()))

 (help 1 ) )

输入:

(countup 4)

期望的输出:

'(s s s s .z)

但即将出现的输出

'(s s s s)

1 个答案:

答案 0 :(得分:1)

正如@molbdnilo所提到的,它必须具有适当的输出样式(即,以null结尾)与不正确的列表。

#lang racket
(cons 's (cons 's (cons 's (cons 's 'z))))            ; => '(s s s s . z)
(cons 's (cons 's (cons 's (cons 's '()))))           ; => '(s s s s)
(cons 's (cons 's (cons 's (cons 's (cons 'z '()))))) ; => '(s s s s z)