2016-10-06 3 views
2

Я хочу написать фрагмент кода, цикл.
Так я начинаю:Terminal, Editor, Project

for_i. i.10 do. 

Нажмите «Enter» для того, чтобы написать новую строку, выдается сообщение об ошибке:

|spelling error 
| 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

control структуры J работают только в явном определении (что боб клонит).

Если вы хотите использовать их в одной строке, вам понадобится полное закрывающее явное определение в этой строке. И если вам нужны результаты из этой строки, вам также нужно будет предоставить это определение аргументу для работы.

Например:

глагол Защита «for_i. i.10. echo i end. ' 0