私はラケットを初めて使います。私はループを使ってリストのリストを返そうとしています。コードは機能しますが、他の条件を評価せずに要素の1つだけを3回印刷し、重複を招きます。どのように各条件をループし、重複なく各条件に対して1つの要素を印刷することができますか?ループを使用してリストを返す
(define position_
(lambda
(list_)
(let ([size 3]) ;
(for/list ([binary (in-range 0 size)])
(cond [(not (empty? list_))
(cond((list-ref list_ 0) (cond ((equal? (list-ref list_ 0) 1) (list (vector-ref Table 0) HIGH)) ((equal? (list-ref list_ 0) 0) (list (vector-ref Table 0) LOW))))
((list-ref list_ 1) (cond ((equal? (list-ref list_ 1) 1) (list (vector-ref Table 1) HIGH)) ((equal? (list-ref list_ 1) 0) (list (vector-ref Table 1) LOW))))
((list-ref list_ 2) (cond ((equal? (list-ref list_ 2) 1) (list (vector-ref Table 2) HIGH)) ((equal? (list-ref list_ 2) 0) (list (vector-ref Table 2) LOW))))
)])
))))
に動作しますはい、私は、ネスティングがケースかもしれない疑いがある病気のコードを調整し、それが動作するかどうかを確認 –
また、 'p2'は' p1'が偽であると評価するだけなので、 '(and(not p1)p2)'を実際に意味することも知っています。したがって、「cond」では、結果表現という用語のうちの1つのみが評価されます。 – Sylwester