問題タブ [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.
factor-lang - コマンドラインでFactorによってMAINが実行されない
Hello World プログラムからの出力が表示されません。
(出力なし)
(出力なし)
shebang - 因子シバン
Hyperpolyglotによると、Factor はシバンを受け入れる必要があります。しかし、私のシステムでは、Factor はシバンを処理できません。
仕様: Factor v0.94、Mac OS X 10.7
main - __name __ = = "_ _ main __":main()の場合、FactorにはPythonイディオムと同等のものがありますか?
Factorには、Cベースの言語と同じように主な方法があるようです。
ただし、Factorはmain関数を自動的に実行しません。ターミナルで実行./hello.factor
している場合、が呼び出されないため、何も起こりmain
ません。
FactorがPythonのような構文を持っているかどうか誰かが知っているので、それhello
は実際に呼び出され./hello.py
ますか?
module - Factor のモジュール/ファイル名にプログラムでアクセスしますか?
コマンドラインの使用法で指定されたプログラム名"Usage: rot13.factor [OPTIONS]"
。
?FILE
Erlang には、ソース コード自体のファイル名にアクセスするために呼び出されるマクロがあります。Factor にも似たようなものがありますか?
import - 作業ディレクトリに配置せずにFactorコードをインポートしますか?
コードを管理するバージョンが好きです。すべてのFactorファイルを私のgitからFactorの作業ディレクトリにコピーして戻すのは面倒です。
require
Factorには、現在のディレクトリでソースコードを探すRubyのようなインポートコマンドがありますか?
multiline - Factorには複数行のシバンがありますか?
CommonLispには複数行のシバンがあります。
これにより、シバン内でより複雑な操作が可能になります。CLISPは、ARGVからスクリプト名を省略した数少ない言語の1つです。ここでは、LispスクリプトがARGVを介してスクリプト名にアクセスできるように、スクリプト名がCLISPに2回強制的に送信されます。
以下が機能するようにFactorでこれを行う方法はありますか?
上記の行は出力されるはずですが、Factorはスクリプト名の後にあるため、t
無視します。-help
これ-help
は、スクリプト名の前に送信されたために機能します。シェバンがに拡大するため、./ios7crypt.factor -help
静かにドロップします。残念ながら、Factorはスクリプト名の前にすべてのコマンドラインオプションを必要としているようです。-help
factor ios7crypt.factor -help
この動作をオーバーライドする複数行のシバンはありますか?
compilation - Factor Programs をコンパイルするより速い方法
私はFactor言語が大好きです。しかし、Factor で書かれたプログラムのコンパイルは非常に遅く、Factor で実際のプロジェクトを作成することは現実的ではありません。
たとえば、サンプルのCalculator WebAppをコンパイルするには、私のラップトップ (i3 プロセッサ、2GB RAM、Fedora 15 を実行) で約 5 分かかります。
あちこち検索しましたが、インタプリタ (メインの factor バイナリ実行可能ファイル) を使用するよりも速く Factor プログラムをコンパイルする方法を見つけることができませんでした。
実行ごとにインタープリターのみを使用し、プログラムをネイティブバイナリファイルに「展開」しないと、ばかげたことになります(多くのプログラムでは機能しません)。これは、たとえば、Calculator を実行するたびに、5 分間のコールド スタート期間を待たなければならないことを意味します。
これが一般的な問題であるかどうか、およびそれに取り組む良い方法があるかどうかを知りたいです。
path - Factorソースツリーの外部でコードを操作する
私はファクターで遊び始めようとしています。
これまでのところ、私は:
- OSXディスクイメージをダウンロードしました
- ファクターディレクトリをにコピーしました
$INSTALL/factor
- を実行してデバッガを起動しました
$INSTALL/factor/factor
これはうまく機能しているようです。
最初の要素プログラムを作成するための指示に従って、ディレクトリscaffold-vocab
にファイルが生成されていることに気付きました。$INSTALL/factor/work
今のところ使用できますが、一般的には、$INSTALL
ディレクトリツリーと$CODE
ディレクトリツリーを別々に保持するのが好きです。
そのため、 「Factorディレクトリツリー外のコードの操作」ドキュメントの指示に従って、コードを実行可能ファイルにロードするために使用されるパスに他のディレクトリを追加しようとしていますfactor
が、あまり運がありません。
まず、FACTOR_ROOTS
環境変数を設定しようとしました。
次に、~/.factor-roots
ファイルを作成してみました
./.factor-roots
次に、代わりに使用する必要があるかどうかを確認しました。
最後に、手動で追加してみました。
ここで基本的な何かが欠けているようです。
$INSTALL/factor
ディレクトリツリーの外にコードを記述し、それを因数分解で使用するにはどうすればよいですか?ディレクトリscaffold-vocab
にスキャフォールディングを構築するように指示するにはどうすればよいですか?$CODE/Factor
cartesian-product - Factor での 2 つのシーケンスのデカルト積の計算
Factorに手を出し始めたところです。2 つのシーケンスのデカルト積を計算したい:
私が見たいのは、シーケンスのシーケンスです:
この単語を使用するとcartesian-product
、シーケンスのシーケンスのシーケンスが得られます。
私も試しまし[ 2array ] cartesian-map
たが、同じことが得られます。最後に を試み[ 2array ] cartesian-each
ましたが、各ペアが別々にスタックにプッシュされます。少なくともフラットですが、それらをすべて 1 つの配列にまとめたいと思います。
どうすればいいですか?
continuations - コールスタック?スタックを保持しますか?ネームスタック?
Factorマニュアルのこのページでは、継続で格納されるこれらのタイプのスタックについて説明しています。
- データスタック
- スタックを保持
- コールスタック
- namestack
- キャッチスタック
これらのスタックは正確に何を保持しますか?私にとって最も紛らわしいのは、callstack、retainstack、namestackの3つです。