3

Racketを使用してすでに存在するリストに整数を追加したいと思います。これが私がこれまでに持っているコードです。

(define (countBlackPegs gameList playerList)
(define blackPegs '())

(if (equal? (car playerList) (car gameList)) 
  (set! blackPegs '(1))
;;otherwise
  (set! blackPegs '(0)))
)

理論的には、ifステートメントを繰り返し(毎回リストの異なる部分を調べる)、ifステートメントの結果に基づいて適切な値をblackPegsリストに追加できるはずです。残念ながら、私が試したすべての追加機能は正しく機能しません。どんな助けでもいただければ幸いです。

4

1 に答える 1

5

すでに存在するリストを(使用して)変更する場合set!は、最初に新しい要素を追加するために、これらの行に沿って何かを実行します。

(set! blackPegs (cons 1 blackPegs))

または、最後に新しい要素を追加する場合:

(set! blackPegs (append blackPegs (list 1)))

ただし、Schemeでは、このスタイルのプログラミングは推奨されないため、変数の変更を避けるようにしてください。関数型プログラミングスタイルが推奨されます。

于 2013-03-21T02:43:17.560 に答える