質問
大丈夫そうですが違うが、どうでしょリストを返しです。?
正しい解決策はありません
他のヒント
うものの他のお問い合わせは、と思いつきの良さを知ってもらい、頭の周りに巻の概念を中心に機能言語などのスキームです。
のレベルだけの学習スキーム(初心者)、全ての機能書きは、入力と出力は、身体の機能が単一の表現です。も価値を表現であると評価が存在する場合もあります。する必要がない明示的に"戻る"もしに必要とされる言語のようなJavaやC;こうして直接の影響を評価する。
身体の機能が単一の表現です。しかできないファッションのJavaが体の方法にはいくつかの方法:
do this
then do that
then do something else
then return something (maybe)
スキームの機能評価シングル表現ものです。こちらは簡単なる機能を追加し5いず数として渡される引数:
(define (add5 x)
(+ x 5))
身体の機能 (+ x 5)
, ける表現を評価することができます。の値 x
は、自動的に +
(ほか)の機能を適用 x
5、結果が返されます。
リストのなかに異なります。すべての必要なものである表現を構築します。について述べさせていただき: リスト するリストからすでにすべての要素 連結実績 はを付加するために使われる単一要素を既存のリストが再帰的に.
この機能を消費する複数 n
とビルドのリスト (n n-1 n-2 ... 0)
(define (makelist n)
(if (= n 0)
(list 0) ; base case. Just return (0)
(cons n (makelist (- n 1))))) ; recursive case. Add n to the head of (n-1 n-2 ... 0)
ともに基盤の再帰の場合、リストが返されるだけで評価する表現を使用する、リスト-ビル。
こちらは別の例です。これを使用しております add5
機能を追加5の各要素リストの番号(lon):
(define (add5list lon)
(if (null? lon)
`() ; base case: lon is empty. Return an empty list.
(cons (add5 (car lon)) (add5list (cdr lon))))) ; recursive case.
; Add 5 to the head of lon and prepend it to the tail of lon
再度、基盤の再帰の場合は帰国リストによる評価表現し、その結果のリストが表示されます。
鍵のことを覚えてスキームはすべての機能に戻っていたのであることで、結果を評価する式です。本体のスキーム機能を単一の表現です。
あなたはおそらく単にたい:'(2 3 5 7 11)
または(list 2 3 5 7 11)
を
(cons 2 (cons 3 '()))
また、要素とにそれを追加するためのリストを指定することで、リストを構築することができます
ここでは、関数からリストを返す例です。
(define returnlist
(lambda(a b c)
(cons a (cons b (cons c '())))
))
(returnlist 2 3 4)
戻り値はリストになります:(list 2 3 4)
これを実行する別のそれほど良く知られた方法:
> ((lambda x x) 2 3 5 7 11)
(2 3 5 7 11)
、である「リスト」機能自体は次のように定義することができる。
> (define list (lambda x x))