問題タブ [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.
algorithm - このスキームの累乗関数の時間計算量は?
時間複雑度とは何ですか? なんで?
scheme - このスキーム関数の書き方を知っていますか?
1 つの引数 (正の整数) を受け取り、
- 偶数の場合は 2 で割る、または
- 3 倍し、奇数の場合は 1 を加算します
結果の数値を返します。
次に、1 つの引数 (正の整数) を受け取り、それを 1 に達するまで (その時点で停止する) 前の関数に繰り返し渡す別の関数。この関数は、それを 1 に減らすのにかかったステップ数を返します。
次に、2 つの引数 a と b (両方とも a <= b の正の整数) を取り、範囲内の任意の単一の数値 (エンドポイントを含む) を 1 に減らすために必要な反復コラッツ ステップの最大数を返す別の関数。(Collatz ステップは前の関数を指します)。
そして最後に、2 つの引数 a と b (両方とも a <= b の正の整数) を取り、1 に削減されるコラッツ ステップの最大数を取る a と b (エンドポイントを含む) の間の数を返す別の関数。
これらの関数はコラッツ問題に関係しており、非常に興味深いと思います。後続の関数は、明らかに以前に定義された他の関数を借用します。
これをSchemeコードでどのように示すことができるでしょうか?
time - PLT 方式のタイム コード
関数の実行にかかる時間を知りたい。PLT-Scheme でこれを行う最も簡単な方法は何ですか? 理想的には、次のようなことができるようになりたいと思います。
(timed loopy 5000000)
or のような他の構文を使用する必要があるかどうか(timed '(loopy 5000000))
、またはコンスなどにかかった時間を返すかどうかは問題ではありません。
lisp - SICPを介して作業するための最良のScheme実装は何ですか?
私はPLTスキームを使用していますが、いくつかの問題があります。SICPを介して作業するためのより良い実装を知っている人はいますか?
scheme - スキームでネックレスを生成するための簡単なアルゴリズムは?
長さ n の k-ary ネックレスは、長さ k のアルファベットからアイテムが抽出される長さ n の順序付けられたリストであり、ローテーションの下で順序付けを共有するすべてのリストの一種で辞書編集的に最初のリストです。
例: (1 2 3) と (1 3 2) は、アルファベット {1 2 3} の長さ 3 のネックレスです。
詳細: http://en.wikipedia.org/wiki/Necklace_(組み合わせ論)
これらをScheme(またはあなたが選んだLisp)で生成したいと思います。私はいくつかの論文を見つけました...
Savage - ネックレスを生成するための新しいアルゴリズム
澤田 - 一定の償却時間でブレスレットを
生成
する 主な理由は、アルファベットまたは必要な長さ (n) を渡していないように見えるためです。私が探しているスキーム手順は、(necklaces n '(ab c...)) という形式です。
最初に k^n リストを生成し、次に回転を除外することで、これらを簡単に生成できます。しかし、それはひどくメモリ効率が悪いです...
ありがとう!
lisp - DrScheme で使用する言語を選択するにはどうすればよいですか?
最近、PLT Scheme と DrScheme をダウンロードしました。DrScheme を開くと、言語を選択するように求められます。しかし、私はどのオプションにも精通していません。また、ヘルプ ガイドでは、どのオプションを簡単に選択できるかを詳しく説明していません。
まず、DrScheme と PLT Scheme は本当に Lisp や Scheme を学ぶのに必要なツールなのでしょうか? もしそうなら、異なる言語は何ですか、またどの言語を使用する必要がありますか?
lisp - このスキーム関数をより明確に表現するにはどうすればよいでしょうか?
この関数は私が書いたものですが、単純な再帰と繰り返しを使用して、これをより明確に表現するにはどうすればよいでしょうか?
申し訳ありませんが、作成関数を定義するのを忘れていました。
また、この関数は、f と正の整数 n を計算する手続きを入力として取り、f の n 回目の繰り返し適用を計算する手続きを返します。
scheme - このスキーム関数を別の形式に変換しますか?
したがって、合計をメッセージ パッシング オブジェクトとして定義する 1 つの方法を次に示します。
しかし、これは次のように書き換えることができます。
製品をメッセージ パッシング オブジェクトとして定義するために記述した関数を、上記の 2 番目の形式に変更するにはどうすればよいでしょうか? ここに私が書いたコードがあります:
functional-programming - ポータブル継続をサポートする高速言語はありますか?
ポータブル継続をサポートする高速言語(つまり、ネイティブにコンパイルしてCの3倍または4倍以下のパフォーマンスを実現できる言語)を探しています。これは、あるコンピューターでシリアル化でき、別のコンピューターで逆シリアル化できる継続を意味します。
SISCがこれ(JavaでのSchemeの実装)を実行できることは知っていますが、速度は遅くなります。Rhinoの同上(JavaでのJavascript実装)。
scheme - 世の中にSchemeプログラミング言語を使っている人はいますか?
私は自分の大学でコンピューター サイエンスの勉強を始めたばかりで、Scheme でのプログラミングを教えてくれます。
私は過去 6 年間 C++ を学んできたので、Scheme は少し奇妙に思えます。私のインストラクターは、C や Java で書けるプログラムなら何でも書けると言っています。
本当にこの言語を使っている人はいますか?