問題タブ [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.
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.html、http://mitpress.mit.edu/sicp/full-text/sicp/book/node80.html
著者は、次の方法で環境をセットアップすることを提案しています。
ただし、理由がわかりません
私が知っているように、Scheme はデフォルトで値によって関数に変数を渡すため、Scheme で期待どおりに動作するはずです。initial-env に変更すると、initial-env は毎回変更されず、setup-environment 関数は、extend-environment が返した値を返します。
私の理解のどこが間違っていますか、教えていただけますか?
前もって感謝します!
lambda - LABELS 内で定義されたラムダは関数を作成しませんか? 実行しない?
Steel Bank Common Lisp を使用した SICP の作業では、かなりの成功を収めましたが、「Picture Language」の例で問題が発生しました。以下はPPMファイルに書き込んでいないようですが、私が書いた他の回転と反転はそうです。LAMBDA が LABELS 内で呼び出されたときに、どういうわけか関数を返していないと思われますか?
私はすでに Mx check-parens を持っていますが、そこには何も孤立していたり、見た目がおかしいものはありません。
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で:
どちらのシグナルフローグラフも描くことができます。これらのグラフをどのように活用できますか?
アドバイスと情報をありがとう!
haskell - 状態の管理 - SICP の第 3 章
私はコンピュータープログラムの構造と解釈に取り組んでおり、Haskell の演習を完了しています。最初の 2 つの章は問題ありませんでしたが (コードはgithubにあります)、第 3 章ではさらに難しく考えさせられます。
まず、銀行口座を例に、状態の管理について説明します。make-withdraw
関数を次のように定義します。
次のコードを実行できるようにします。
Haskell でこれをエミュレートする方法がわかりません。私は最初に State モナドを使ったいくつかの単純な関数を考えました:
これにより、コードを実行できます
しかし、それはスキームコードとは異なることをします。理想的には、次のようなものを実行できます
しかし、関数の書き方がわかりませんmakeWithdraw
。何かアドバイス?
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が好きです)またはチュートリアルはありますか?
どうもありがとう。
javascript - underscore.js _.memoize() の動作例?
underscore.js _.memoize() の動作例を教えてもらえますか?
できれば hashFunction を使用し、さらに好ましくは coffeescript を使用しますか?
これは、coffeescript の SICP からのかわいい変更カウント関数のわずかに変更されたバージョンです。
たとえば、アンダースコアの _.memoize() をどのように使用できますか?
よろしくお願いします!
ps ..また、関数がコード化された方法で穴を撃つことをためらわないでください..私はcoffeescriptに非常に慣れていないので、そのコードをより慣用的にするための助けも大歓迎です.
objective-c - Objective-C の制約ネットワーク
Mac OS X 10.7 で Objective C アプリケーションを作成していますが、算術制約の問題を解決する必要があります。たとえば、長方形の 2 つの方程式があり、a と b は辺の長さです。
私はこの問題を制約充足問題と特定しました。ユーザーは a と A を指定し、ソルバーに b と P を計算させる必要があります。http://mitpress.mit.edu/sicp/full-text/book/book-ZH-でこれの実装を見つけました。 22.html#%_idx_3516ですが、Objective C から LISP プログラムを呼び出すクリーンな方法があるかどうかはわかりません。Objective C インターフェイスをソルバーに提供できるものを探しているか、LISP をコンパイルできるものを探しています。 Objective C ライブラリにプログラムします。それ以外の場合は、最小限のオープン ソースの制約ソルバーが私のニーズに合っています。
scheme - スキームのシンボルを理解する
私は、Scheme のシンボルを理解するのに苦労しています。以下は私を混乱させます:
最初のものが記号である理由は理解できたと思いますが、そうで'('x))
ないのはなぜですか? 誰かが理由を説明してもらえますか?
価値のあるものとして、私は MIT/GNU スキームを実行しています。
lambda - 2番目のラムダのパラメーターは何をしますか?
これは、SICPビデオレクチャー、39:51マーク付近のレクチャー2aからのものです。
x
2番目のラムダのはAVERAGE-DAMPで何をし、どのようにアクセスされますか?正確に何が渡されているのかわかりません。
compiler-construction - SICP の第 5 章の語彙アドレス指定の利点は何ですか?
私は今 SICP を読んでいますが、5.5.6 SICP のレキシカル アドレス指定で説明されているレキシカル アドレス指定の必要性がよくわかりません。
「私たちの言語はレキシカルスコープであるため、式のランタイム環境は、式が表示されるプログラムのレキシカル構造に対応する構造を持ちます」と書かれているので、実行時に変数を検索するのに同じコストがかかると思います-コンパイル環境で検索するときの環境。なぜわざわざコンパイル環境を実装するのでしょうか? コンパイル環境は、プログラムの字句構造に対応する同じ構造になると思いますが、これは実行環境と同じですよね。