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, 5 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, 5 months ago

Your Answer