問題タブ [mit-scheme]
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.
scheme - MITスキームとWindowsの間でテキストをコピーして貼り付ける方法
MITスキームのエドウィンとウィンドウズの間でテキストをコピーして貼り付けたいです。方法はありますか?
今、私はメモ帳でソースコードを開き、そこにコピー/貼り付け、保存して閉じ、Edwinに戻って同期します。便利ではありません。
scheme - Edwin でファイルをロードする方法
これはばかげた質問かもしれませんが、私は一生これを理解することはできず、私の質問に答える参照をオンラインで見つけることもできません.
Edwin を使用して (Emacs を使用するのはこれが初めてです)、MIT Opencourseware 6.001 クラスに従っていますが、ファイルをロードする方法がわかりません。
起動時に Cx Cf と入力して、新しいファイル「test.scm」を作成します。次に、Scheme コードを入力し、Cx Cs と入力して保存します。
しかし、Edwin を閉じて再起動し、Cx Cf test.scm と入力すると、白紙の状態になります。代わりに Mx dired と入力し、test.scm までスクロールして RET を押すと、白紙の状態になります。ファイルはウィンドウでいくらかのスペースを占有するため、問題は保存ではなく読み込みにあると思います(特に、MITが提供する既製の.scmファイルを同様に読み込むことができないため)
問題があれば、Windows 7でMIT / GNUスキームを実行しています...
scheme - Guile Scheme インタプリタでの奇妙な乗算動作
OS XのインタプリタでSchemeの練習をしていGuile 1.8.8
たところ、面白いことに気がつきました。
expt
基本的に累乗を行う関数は次のexpt(b,n) = b^n
とおりです。
いくつかの入力で試してみると
ここに奇妙な部分があります:
さらに奇妙なことに、n=488
にとどまるまで0
:
このコードをrepl.itオンライン インタープリターで試すと、期待どおりに動作します。では、ガイルの何が問題なのですか?
(注: 一部の方言では、remainder
function は として呼び出されmod
ます。)
scheme - 複合S式を解析して通常の形式にするScheme定義を作成する方法
:の形式の式が与えられた場合(* 3 (+ x y))
、どのように式を評価して形式に入れることができ(+ (* 3 x) (* 3 y))
ますか?(注:一般的な場合、3は任意の定数であり、「x」または「y」は単一変数または他のS式の項である可能性があります(例(+ 2 x)
)。
元の式の項目(アトム?)を再帰的に評価し、それらが定数であるか用語であるかを判別するラムダ式を作成するにはどうすればよいですか?用語の場合、その用語のリスト内の各項目のタイプを判別するために、再帰的に再度評価する必要があります。
繰り返しますが、私にとっての問題の核心は、定義の再帰的な「カーネル」です。
式の最も深い部分の最後の単一のアトムに到達すると、それを決定するベースケースが明らかに必要になります。次に、「バックアップ」を再帰的に実行し、ルールに従って適切な形式で式を作成します。
Java / C ++のバックグラウンドから来ているので、Schemeでこれを構文的に行う方法を理解するのは非常に困難です。
scheme - スキーム入力ポート eof
それはすべてスキームとその入力システムに関するものです。始めましょう。私はこの入力を取得しました。プログラムは eof まで読み続けなければなりません。
そして、これが関数です
問題は、コンソールからの読み取りに問題があり、letrec、問題がどこにあるかはわかっていますが、解決方法はわかりません。
p>入力を前後に読んで貼り付けます、よろしくお願いします
scheme - MIT スキームの中央値手順
list-ref を使用せずに、リストの中央値を見つける手順をどのように定義しますか? たとえば、(median '(1 2 2))
2 を(median '(1 2 3 4 5 6))
返し、3.5 を返します。ソートされた整数のリストであると想定できます。
これは宿題の質問なので、実際のコードを投稿しないでください。私が探しているのは、私を正しい方向に導くためのヒントまたは疑似コードだけです。タイトルで述べたように、私は MIT スキームを使用しています。前もって感謝します。
scheme - mit-schemeに「define-macro」を実装することは可能ですか?
このページを読んだ後。define-syntax
の代わりに使い方を覚えるのが難しいので、mit-schemeに実装(または少なくとも同等のものを見つけて)しdefine-macro
たいと思います。define-macro
これが私の(問題のある)実装です:
そしてREPLは不平を言った:
私はスキームに不慣れで、何が悪いのかわかりません。誰かが私を助けてくれますか?