SCHEME语言解决办法


        SCHEME语言<br />

问题描述:把一个长度列表的原子一一取出。

(1)如果是空列表 直接返回空列表 例如:输入’() 输出()

(2)如果列表里面的都是原子表示的则直接返回该列表。例如输入'(0 1 2 3) 输出(0 1 2)

(3)如果列表里又有列表,则把列表一一分解。例如输入'((1 2) 3 4) 输出 (1 2 3 4)


(define (flaff listNumber)

  (cond (((null  listNumber) '())

         ((list  (car listNumber))

          (append (flaff(car listNumber))

                  (flaff(cdr listNumber))))

         (else (cons (car listNumber)

                     (flaff (cdr listNumber)))))))

这个例子总是报错误:

 else: not allowed as an expression in: (else (cons (car listNumber) (flaff (cdr listNumber))))


刚刚开始学希望高手告诉下怎么改正

perl 程序开发 Perl语言基础

帅得一败涂地 10 years, 10 months ago

括号的地方不对。

  (define (flaff listNumber)
  (cond
   ((null  listNumber) '())
   ((list  (car listNumber))
    (append (flaff(car listNumber))
            (flaff(cdr listNumber))))
   (else (cons (car listNumber)
               (flaff (cdr listNumber))))))

adgasdg answered 10 years, 10 months ago

Your Answer