質問

大丈夫そうですが違うが、どうでしょリストを返しです。?

正しい解決策はありません

他のヒント

うものの他のお問い合わせは、と思いつきの良さを知ってもらい、頭の周りに巻の概念を中心に機能言語などのスキームです。

のレベルだけの学習スキーム(初心者)、全ての機能書きは、入力と出力は、身体の機能が単一の表現です。も価値を表現であると評価が存在する場合もあります。する必要がない明示的に"戻る"もしに必要とされる言語のような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))
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top