問題タブ [factor-lang]
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.
combinators - 実行時の計算値を切断しますか?
Cleave は、コードの重複を最小限に抑えるための非常に便利なコンビネーターです。Abundant、Perfect、Deficient の数を分類したいとします。
range>adp-classes
「実行時に計算された値にクリーブを適用できない」ため、コンパイルされません。
クリーブを使用できない場合は、基本的に次のことを行う必要があります。
これは不自由で長く、キー文字列の配列がより長い場合、非常に醜く長くなります。また、キーの配列が実行時に生成される場合、切断せずに実行することは不可能です。
同様にprint-adp-stats
: なしcleave
では、このリテラルをソースに配置する必要があります。
きもい。
cleave
実行時の計算値を置き換えるコンビネータはありますか? 実行時に計算を許可しながら、他の方法で醜い重複を最小限に抑えることはできますか?
recursion - 再帰を止めるには?
コードの出現 1 日目では、何らかの形式で、長い括弧の文字列((((())(())(((()))((
などをループする必要があります。アイデアは、(
1 つの「フロア」を上って、)
1 つのフロアを下って、目的は印刷することです。
- フロア番号が負の文字列の最初のインデックスと、
- 弦の端が見つかったときの最終階。
for ループを使用した必須のソリューションは単純です (例として Python を使用)。
再帰関数のソリューションはもう少し複雑ですが、それほど難しくはありません。
これらは両方とも、次の正しい出力を提供します
私のチャレンジ入力に対して実行すると。
Pythonにはテールコールの最適化がないため、2番目のものはダムですが、気にしないでください
これらのいずれかを Factor に実装するにはどうすればよいですか? これは、Factor を使い始めて以来、ずっと混乱していたことです。
for ループだけを使用することはできません。これは、反復間で変更可能な状態を維持できる同等のものがないためです。
再帰的なソリューションを使用できます。
すばらしい、これは骨格ですが、の体には何が入っていday-1-worker
ますか? Factor には、再帰呼び出しから「早期復帰」する方法がありません。これは、プログラムを逆方向に実行する方法がなく、復帰の概念がないためです。これは意味がありません。
Factor では、再帰はこの質問に対する答えではないのではないかと思います。もしそうなら、どうすれば再帰を止めることができますか?
factor-lang - 係数で数値を3乗する方法は?
連結プログラミングを少し理解するために、Factor をいじっています。数を 2 乗する単語を書くのは簡単です。
しかし、私の人生では、数値を3乗する方法を理解できないようです:
( x x x -- x )
推測されたスタック効果が同様であるため、機能しません
も失敗します。
キューブをハードコーディングするとしたら、次のようにします。
これが、私の素朴な推測がフォーム b になる理由です。
私が言うように、私は Factor で遊んでいるだけで、ここで何が欠けているか知りたいと思っていますが、それは主に私の好奇心のためです。
shell - Factor のシェル スクリプトの外部で変更ディレクトリを永続化するにはどうすればよいですか?
ファイルに次の要素コードがあります。
ファクターからスクリプトを実行しようとすると、次のエラーが発生します。
代わりにこれを実行できますUSING: shell ;
がUSING: io.files.private
、ディレクトリの変更はスクリプトの実行以外では保持されません。シェルを使用するとディレクトリの変更が持続すると思いますが、これは悪い仮定かもしれません。ディレクトリを変更するスクリプトを作成し、ディレクトリの変更をスクリプトの外に保持するにはどうすればよいですか?
Windows 7 (はい、Windows の dir セパレーターは通常\
'\' も試しましたが、/
実際には Windows でも動作します。パスは io.files.private を使用すると動作します)。
係数 0.98 x86.64 (1788、heads/master-e187d63d3c、Tue Oct 18 02:14:22 2016) [Microsoft Visual C++ 190023506] (Windows)