問題タブ [sicp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3391 参照

lisp - drラケットのmcons

drラケットからの出力を読み取るのに問題があります。デフォルトでは、mconsを使用してリストを表示します。たとえば、sicp演習2.32は以下を生成します。

私はこれを読むのに苦労しています。出力を次のように表示する方法はありますか?

ありがとう!

0 投票する
2 に答える
1154 参照

scheme - スキーム - ブラックジャック プログラム (SICP) / プログラミングの学習

私は、SICP の読み取り/実行をプログラムすることを学ぶことにしました。

DrRacket と http://www.neilvandyke.org/racket-sicp/を使用しています。

ブラックジャック プログラムhttps://github.com/fnava621/scheme_blackjackを作成しました。できます。

このプログラムをもっと読みやすく簡潔にすることはできますか?

コメント入れすぎた?コメントが足りない?このプログラムを「より良く」するにはどうすればよいですか?

私もガントレットを投げています。「最適な」戦略を使用し、プレーヤーがディーラーに勝つ確率を決定するプログラムを作成できますか (n サンプル サイズを使用)。同じことをしてコードを比較します。

読んでくれてありがとう、フェルナンド・ナバ

0 投票する
2 に答える
788 参照

recursion - clojureでのforeach(doseq)の実装

私はSICPを使用しています。1つの演習はforeach(doseq)を実装することです。これは学術的な演習です。clojureでは、これが私が思いついたものです:

doしかし、それが不正行為であるかどうかについては少し曖昧です。これdoはclojureの特殊な形式であり、SICPではまだそのようなものが導入されていないと思います。もっとミニマリストの答えはありますか?

最後の要素でのみprocを実行する別の試みを次に示します。

0 投票する
3 に答える
1090 参照

scala - Scala の記号微分

SICP で行われているようなパターン マッチングを使用して、Scala で記号微分関数を作成したいと考えています。私はこのようなものを書くことができるようにしたいと思います:

「ネイティブ」式のScalaでこれは可能ですか?

0 投票する
3 に答える
236 参照

lisp - SICP での演習開始時のエラー (演習 1.3)

プロンプトは、3 つの数値のうち最大の 2 つの数値の 2 乗和を返すプロシージャを定義することです。

これは正確にはエレガントな解決策ではないことはわかっていますが、これは私が一緒にハッキングしたものです:

私が疑問に思っているのは、なぜエラーが発生するのかということです。

オブジェクトという単語に続く数字は、常に正しい答えです。私はスキームの初心者です。それは私の構文に何かあるに違いありませんか?

ありがとう

0 投票する
2 に答える
582 参照

lisp - 環境を実装するメタサーキュラー評価者

Harold Abelson と Gerald Jay Sussman による有名な本「Structure and Interpretation of Computer Programs」に従って、Scheme に Metacircular Evaluator を実装しようとしています。

http://mitpress.mit.edu/sicp/full-text/sicp/book/node79.htmlhttp://mitpress.mit.edu/sicp/full-text/sicp/book/node80.html

著者は、次の方法で環境をセットアップすることを提案しています。

ただし、理由がわかりません

私が知っているように、Scheme はデフォルトで値によって関数に変数を渡すため、Scheme で期待どおりに動作するはずです。initial-env に変更すると、initial-env は毎回変更されず、setup-environment 関数は、extend-environment が返した値を返します。

私の理解のどこが間違っていますか、教えていただけますか?

前もって感謝します!

0 投票する
1 に答える
240 参照

lambda - LABELS 内で定義されたラムダは関数を作成しませんか? 実行しない?

Steel Bank Common Lisp を使用した SICP の作業では、かなりの成功を収めましたが、「Picture Language」の例で問題が発生しました。以下はPPMファイルに書き込んでいないようですが、私が書いた他の回転と反転はそうです。LAMBDA が LABELS 内で呼び出されたときに、どういうわけか関数を返していないと思われますか?

私はすでに Mx check-parens を持っていますが、そこには何も孤立していたり​​、見た目がおかしいものはありません。

0 投票する
2 に答える
362 参照

haskell - SICPで説明されているシグナルフロー図を深く理解するにはどうすればよいですか?

SICP第3.5.3章 http://mitpress.mit.edu/sicp/full-text/book/book-ZH-24.html#%_sec_3.5.3

セクションでは、SICPはフィードバックループによって--Streams as signalsの視聴覚説明を提供します。Implicit style of definitionしかし、図を正確に理解する方法を知りたいですか?本当の利点は何ですか?背景知識はありますか?

別の例を見てみましょう。Schemeではなく、Haskellで:

どちらのシグナルフローグラフも描くことができます。これらのグラフをどのように活用できますか?

アドバイスと情報をありがとう!

0 投票する
2 に答える
969 参照

haskell - 状態の管理 - SICP の第 3 章

私はコンピュータープログラムの構造と解釈に取り組んでおり、Haskell の演習を完了しています。最初の 2 つの章は問題ありませんでしたが (コードはgithubにあります)、第 3 章ではさらに難しく考えさせられます。

まず、銀行口座を例に、状態の管理について説明します。make-withdraw関数を次のように定義します。

次のコードを実行できるようにします。

Haskell でこれをエミュレートする方法がわかりません。私は最初に State モナドを使ったいくつかの単純な関数を考えました:

これにより、コードを実行できます

しかし、それはスキームコードとは異なることをします。理想的には、次のようなものを実行できます

しかし、関数の書き方がわかりませんmakeWithdraw。何かアドバイス?

0 投票する
1 に答える
722 参照

diagram - SICPのようにシグナルフロー図を描く

http://mitpress.mit.edu/sicp/full-text/book/ch3-ZG-35.gif、http://mitpress.mit.edu/sicpなどの図を描く方法を探しています。 /full-text/book/ch3-ZG-49.gif、http://mitpress.mit.edu/sicp/full-text/book/ch3-ZG-51.gif、SICPにちなんで名付けられましたsignal-flow diagramいくつかの方法を試しましたが、失敗しました。私はあなたの助けを待っています。

私はgraphviz次のコードを試し、書きました。フィボナッチ数列のストリームの図を取得したいと思います。

しかし、結果は厄介です。この種の図を描くための簡単なツール(私はWYTIWYGが好きです)またはチュートリアルはありますか?

どうもありがとう。