が表示されません最初のリスト "x"に進みます。プロセスは次のようになります(cons a1(cons a2 ....(cons y)..))、そしてプログラムはyを(y cons)最終的に(cons-1、append(cdr x)y)と(append(cdr x)、y)の結果がyであるからですか?スキームアペンド機能のワークフロー
0
A
答えて
0
あなたの関数には、解析中に最後に1つの閉じ括弧がありすぎるようなエラーがあります。 y
の直後にif
を閉じるため、私は薄型キットを使用しています。そのため、常に最後の式が実行され、x
が空の場合は失敗します。ベースケース、私は一般的に、最も簡単なことで再帰関数を説明したいので、我々は明らかに始める
(define (append x y)
(if (null? x)
y
(cons (car x)
(append (cdr x)
y))))
:
(append '() '(3 4))
これがなる
正しいAPPENDは、次のようになります#t
はx
であり、結果は(3 4)
である。null?
である。今x
ように、1つの要素のリストを試すことができます:
(append '(2) '(3 4))
これは `nullであることx
ため#f
のですか?したがって、あなたがでそれを置き換えることができます:
我々は'(2)
にアクセサを評価することができます。
(cons 2 (append '() '(3 4))
私たちは私たち'(3 4)
あるappend
一部、答えを知っている前に、我々はベースケースをしたので、終わる:
(cons 2 '(3 4)) ; ==> (2 3 4)
はx
新しい操作を行うことができます以前x
としてここ
(append '(1 2) '(3 4))
ので、あなたは再び代替で代用null?
ではありません。もう一度私たち
(cons 1
(append '(2)
'(3 4)))
お知らせ:私たちはアクセサを評価することができ、前回のよう
(cons (car '(1 2))
(append (cdr '(1 2))
'(3 4)))
append
に慣れ親しんでいるので、私たちは最後の結果に置き換えることができます。しかし、私は前にステップを踏んで、あなたが気づいたパターンを見てみましょう:
(cons 1 (cons 2 (append '() '(3 4)))) ; ==>
(cons 1 (cons 2 '(3 4))) ; ==>
(cons 1 '(2 3 4)) ; ==>
; ==> (1 2 3 4)
あなたは12の要素を持っているので、場合x
それは基本ケースを打つ前に、ネストされた12の短所を取得し、リストは常に先頭に終わりから作成されるための機能を評価する必要があるので、それは、外側に、内側を評価申請前の議論。
関連する問題
- 1. 機能プログラミングまたはワークフロー?
- 2. ワークフローのための機能を作りなさい - Powershell
- 3. Gitflowワークフロー - 機能ブランチを防ぐためのGitコマンド
- 4. サーバーアクションのワークフローがOdoo 9.1で機能していません
- 5. のgitのsvnワークフロー - 機能ブランチと私は、次のワークフローでのgit-svnのを使用しています
- 6. Jenkinsワークフロー(パイプライン)+ JobDSLプラグイン - SCMが機能しない
- 7. Odoo 10 WebサービスAPI:ワークフローの移行が機能していません
- 8. 内部LOBワークフローの実行可能メッセージ
- 9. Windowsワークフロー: "シングルトン"スタイルのワークフロー?
- 10. 機能 - 機能()()()
- 11. Windowsワークフロー:ワークフロー内から別のワークフローを開始する
- 12. ワークフロー内のワークフローを呼び出す
- 13. 他の機能の中のonClick機能
- 14. 別の機能のSinon Stub機能
- 15. コールクラスの機能、同じクラスの機能
- 16. ショーの機能名機能の選択
- 17. Sharepointの有効な機能「ワークフローでアプリのアクセス許可を使用できません」
- 18. クリック機能とホバー機能
- 19. ReinH Gitのワークフロー
- 20. ポーリングアプリケーションのワークフロー?
- 21. Windowsワークフローの「レイアウトシェイプ」
- 22. Azureのoozieワークフロー
- 23. データのOOPワークフロー
- 24. ナイーブサーフェスネットアルゴリズムのワークフロー
- 25. odooのワークフロー
- 26. Apache Oozieのワークフロー
- 27. ドッカーのワークフロー
- 28. フィールドベースのワークフロー
- 29. のJavaワークフロー
- 30. InfoPathフォームのワークフロー