2017-06-25 15 views
0

数字バイナリのリストを作成したいのですが、バイナリ(1と0のリスト)を作成する関数を作成しましたが、これらのリストをリストに導入しようとすると、リストにリストを挿入するScheme

(define make (lambda (bin s) 
    (if (= s 0) 
     (display bin) 
     (make (cons (random 2) bin) (- s 1))))) 

(define insert (lambda (ls a) 
    (if (= a 0) 
     (display ls) 
     (insert (cons make ls) (- a 1))))) 

答えて

0

あなたの手順は出力としてリストを構築している場合、それは再帰で台無し基本ケースではないdisplayを行います。また、makeが正しく呼び出されていない場合は、2つの引数を渡す必要があります。そしてinsertはどこにでも要素を挿入していません...始めようか?

(define make 
    (lambda (bin s) 
    (if (= s 0) 
     bin 
     (make (cons (random 2) bin) (- s 1))))) 

(make '() 5) 
=> '(1 0 0 1 1) 

(define insert 
    (lambda (ls e a) 
    (if (= a 0) 
     (cons e ls) 
     (cons (car ls) 
       (insert (cdr ls) e (- a 1)))))) 

(insert '(1 2 4) 3 2) 
=> '(1 2 3 4) 
関連する問題