4

私はファクターで遊び始めようとしています。

これまでのところ、私は:

  • OSXディスクイメージをダウンロードしました
  • ファクターディレクトリをにコピーしました$INSTALL/factor
  • を実行してデバッガを起動しました$INSTALL/factor/factor

これはうまく機能しているようです。

最初の要素プログラムを作成するための指示に従って、ディレクトリscaffold-vocabにファイルが生成されていることに気付きました。$INSTALL/factor/work今のところ使用できますが、一般的には、$INSTALLディレクトリツリーと$CODEディレクトリツリーを別々に保持するのが好きです。

そのため、 「Factorディレクトリツリー外のコードの操作」ドキュメントの指示に従って、コードを実行可能ファイルにロードするために使用されるパスに他のディレクトリを追加しようとしていますfactorが、あまり運がありません。

まず、FACTOR_ROOTS環境変数を設定しようとしました。

% export FACTOR_ROOTS=.:$CODE/Factor:$INSTALL/factor
% $INSTALL/factor/factor
( scratchpad ) "work" resource-path .
"/usr/local/src/factor/work"
( scratchpad ) ^D

次に、~/.factor-rootsファイルを作成してみました

% echo . > ~/.factor-roots
% echo $CODE/Factor >> ~/.factor-roots 
% echo $INSTALL/factor >> ~/.factor-roots
% $INSTALL/factor/factor        
( scratchpad ) "work" resource-path .
"/usr/local/src/factor/work"
( scratchpad ) ^D

./.factor-roots次に、代わりに使用する必要があるかどうかを確認しました。

% mv ~/.factor-roots .
% $INSTALL/factor/factor
( scratchpad ) "work" resource-path .
"/usr/local/src/factor/work"
( scratchpad ) ^D

最後に、手動で追加してみました。

% $INSTALL/factor/factor
( scratchpad ) "." add-vocab-root            
( scratchpad ) "$CODE/Factor" add-vocab-root ! no, I didn't actually use an environment variable here :)
( scratchpad ) "work" resource-path .
"/usr/local/src/factor/work"
( scratchpad ) ^D

ここで基本的な何かが欠けているようです。

$INSTALL/factorディレクトリツリーの外にコードを記述し、それを因数分解で使用するにはどうすればよいですか?ディレクトリscaffold-vocabにスキャフォールディングを構築するように指示するにはどうすればよいですか?$CODE/Factor

4

1 に答える 1

5

さて、#concatenativeのslavaとergの真剣な助けのおかげで、私は自分が間違っていたことを理解することができました。

簡単に言えばresource-path、因子の根をテストする方法ではありません。ドキュメントのように、「Factorのソースコードの場所に相対的なパスを解決する」と言っています。

より効果的なテストは単純ですvocab-roots get。これは、語彙ルートの現在のリストをフェッチします。

"/path/to/wherever" add-vocab-root/path/to/wherever語彙ルートのリストに追加さ"/path/to/wherever" "project" scaffold-vocabれ、希望の場所に足場を構築できるようになります。

エルグが言ったように:

私は通常、次のような別の言葉を作ります
: scaffold-games ( vocab -- ) [ "/home/erg/games" ] dip scaffold-vocab ; "minesweeper" scaffold-games

于 2012-02-16T14:36:26.873 に答える