2016-10-06 14 views
2

ループのコードを書いてみたい。
は、だから私は開始:端末、エディタ、プロジェクト

|spelling error 
| for_i. i.10 do. 
| ^

は、だから私はエディタ(緑のコード領域を持つ1、ターミナルに行く:

for_i. i.10 do. 

を押して、エラーを取得し、「入力」の新しいラインを書くために黄色をしている)。
これらのコードを書いて、「実行」を押してください。
しかし、エディタもターミナルでコードを実行します。そして、はい、同じエラーが発生します。
私はエディタで新しいプロジェクトを開始します。コードを書いてください。 「プロジェクトを実行」を押します。そして???何もない。エラーなし、結果なし、何もありません。
私は

f =: 3 : 0 
    for_i. i.10 do. 
    .... 
) 

のように、関数にこのコードをラップすることができますし、それが動作することを知っています。
しかし、なぜそれは簡単な方法で動作しないのですか?
エディタでも機能しないのはなぜですか?
プロジェクトでコードを作成するにはどうすればよいですか?結果はどこで確認できますか?

答えて

1

エディタを定義領域と考えてください。 =:を使用して変数に定義を割り当てることにより(=。はエディタにローカルでの割り当てだけを確立するため)、エディタスクリプトを実行することで、実際に実行できる定義が端末に設定されます。

実際に動詞をエディターから実行したい場合は、その引数を持つ動詞をエディターに書き込み、動詞が実行され、結果が生成されます。結局のところ、それは割り当てで何をしているのですか?その場合、実行は割り当てられた定義を生成します。

エディタでこれを試して、実行すると意味があるかどうかを確認してください。

a=: 3 : 0 NB. establishes definition of a. This needs to be defined first 
+/y 
) 

a 2 3 4 5 NB. runs a in Terminal from editor 
1

Jのcontrol構造体は、明示的な定義でのみ動作します(これは、bobが取得したものです)。

これらを1行で使用する場合は、その行に明示的に囲む必要があります。また、その行の結果が必要な場合は、その定義に引数を指定して作業する必要もあります。

たとえば、

動詞def 'for_i。私はそうする。エコー終了。 0