2016-03-27 7 views
1

リストを取り込み、リスト内の各要素を別の関数に渡して数値を返す関数があります。 mapの仕組みと同様の結果リストを出力するリストが必要な機能が必要です。リストの各要素に関数を実行し、consを使って答えを出力する

これまで私がこれまで持っていたことは、予期せぬ出力を与えています。

(define (lister x) 
    (cond ((null? x) '()) 
    (cons (solver (car x)) (lister (cdr x)))) 
) 

(lister '(
    (element 0) 
    (element 3) 
)) 

期待される出力は'(0 3)する必要がありますが、それは'()を返します。

+0

'solver'は何ですか? –

+0

これは '(element x)'に数値を返す任意の関数です。たとえば、 '(要素0)'の 'solver'は' 0'を返します。 – DeadCake

答えて

1

cond使い方が間違っています。

試してみてください。

(define (lister x) 
    (cond [(null? x) '()] 
    [else (cons (solver (car x)) (lister (cdr x)))] 
) 
) 

またはifを使用します。

(define (lister x) 
    (if (null? x) 
    '() 
    (cons (solver (car x)) (lister (cdr x))) 
) 
) 
関連する問題