私はランダムにリストを作成し、それをより大きな関数で使用しようとしています。
(define make-random-list
(if
(= (random 2) 0) (list 2 3)
(list 3 2)))
これはリスト(2 3)のみを生成し、理由はわかりません。これを引き起こすために何が起こっているのですか?
このように書くと関数を動作させることができます
(define make-random-list
(lambda (x)
(if
(= (random x) 0) (list 2 3)
(list 3 2))))
と呼び出し(make-random-list 2)
しかし、なぜそれが機能し、もう一方が機能しないのか理解できません。最初の関数がランダムな結果を生成することを許可しないスキームで何が起こっているのでしょうか?