2017-03-17 1 views
0

与えられた整数のリストの偶数のリストを返すScheme関数を書く。リストは単純ではなく、ネストされたリストが出現し、偶数を見つける必要があるその中の数字。これは何である(2 4 6 4)偶数のリストを返すスキームを書く

(define (evenlist numberlist) 
    (cond 
    ((null? numberlist) '()) 
    (else(not (= 0 (modulo (numberlist) 2))(evenlist(car numberlist)))) 
    )) 

:体としてこれを使用してこの ()(evenlist numberlistを定義 結果と同様の結果STHを取得

((evenlist numberlist定義) 私はあなたのせいにしていません:(

+0

これまでに何を試しましたか?あなたが問題を抱えている部分を指し示して、あなたのスキーム実装を投稿してください。 –

+0

(define(evenlist numberlist) (condul (null?numberlist) '()) (else(そうではありません(=モジュロ))())はこれを試しましたが、仕事をしませんでした – Priba101

+0

質問を編集し、コメントとしてではなくコードを追加してください –

答えて

1

入力リストが任意にネストされたリストのリストであればもう少し作業が必要です。これはそのようなリストを処理するための標準テンプレートです:空のリスト、非リストまたはリストのリスト)、さらに結果を平坦化するための追加のロジック(その 'なぜappendがここに使用されますか):

(define (evenlist numberlist) 
    (cond ((null? numberlist) '()) 
     ((not (pair? numberlist)) 
     (if (even? numberlist) (list numberlist) '())) 
     (else 
     (append (evenlist (car numberlist)) 
       (evenlist (cdr numberlist)))))) 
+0

大丈夫ですが、その前に私はエラーとして出力するのでペア機能を定義する必要があります – Priba101

+0

'ペア? 'はSchemeプリミティブであり、インタプリタの一部でなければなりません。別のより高度な言語に変更してみるか、あなたのスキームで 'list? 'かそれに相当するものが定義されているかどうか確認し、置き換えてみてください。 –

+0

私たちの先生は、私たちは中級の言語だけを使うことができ、私はそのペアを変更したと教えてくれましたか?短所に? (リスト2 4)を出力する。私はペアを交換する場合、それは正しい – Priba101

関連する問題