私はラケットプログラミングの新人です。私は数字のリストが与えられている問題に取り組んでいます。数字の組み合わせのリストを作る必要があります。以下のようなラケットのリストの作成
何か:
(combine (list 3 1 2)) => (list
(list 31 32 33)
(list 21 22 3)
(list 11 12 13))
は、どのように私はラケットでこれを達成していますか? ありがとう
私はラケットプログラミングの新人です。私は数字のリストが与えられている問題に取り組んでいます。数字の組み合わせのリストを作る必要があります。以下のようなラケットのリストの作成
何か:
(combine (list 3 1 2)) => (list
(list 31 32 33)
(list 21 22 3)
(list 11 12 13))
は、どのように私はラケットでこれを達成していますか? ありがとう
ちょうどiterators and comprehensionと再生すると、リストのリストを返すデカルト積と、正しい結果を得るための少しの計算が実装されます。これを試してみてください:代わり
(for/list ((i '(3 2 1)))
(for/list ((j '(1 2 3)))
(+ (* 10 i) j)))
または、(学生の言語で利用可能)より標準的な構文を使用して:
(map (lambda (i)
(map (lambda (j)
(+ (* 10 i) j))
'(1 2 3)))
'(3 2 1))
いずれかの方法、それが期待どおりに動作:
=> '((31 32 33) (21 22 23) (11 12 13))
私はそこだと思うが、タイプミスです期待される出力では、 '(list 21 22 23)' –