Кто нибудь может помочь разобраться в процедурках? А то у меня скоро крыша
опухнет. Как туда параметры передавать? как чередуются параметры? Что значат те
или иные символы в скобках после имени процедуры при её описании ?
Hу и подскажите, как вот это заставить работать:
#( TestProc
NoActive
: Qwerty ( a -- ? )
MSG: a
;
Action:
S" ok" Qwerty
)#
p.s. в самом SP-Forth я почти чайник, просто пользуюсь nnCron для автоматизации
некоторых муторных процессов.
--
Best regards,
Ruslan Jakovlev
RJ> Кто нибудь может помочь разобраться в процедурках? А то у меня скоро
RJ> крыша опухнет. Как туда параметры передавать? как чередуются параметры?
Параметры передаются на стеке.
2 2 + даст 4.
Чередование параметров в соответствии с описанием слова (стековой нотацией)
RJ> Что значат те или иные символы в скобках после имени процедуры при её
RJ> описании ? Hу и подскажите, как вот это заставить работать:
Стековая нотация и есть. Скобки - это в Форте комментарии :)
RJ> : Qwerty ( a -- ? )
RJ> MSG: a
RJ> ;
Это описание слова, выводящего мессадж. Строка должна лежать на стеке.
RJ> Action:
RJ> S" ok" Qwerty
RJ> )#
S" ok" кладет на стек адрес строки ok. Потом вызывается Qwerty.
bye
В теории красиво, только как мне стековое значение запихнуть в конкретную
переменную? Hаприме я хочу использовать несколько раз одно и то же значение,
при этом само собой стек будет меняться.
Где можно подробнее почитать про написание именно процедур? Hачинал читать
книжки по форту, в итоге запутался со стеком =) Hе кристальщик я, все триггеры
и содержимое стека не проконтролю, привык к ЯПВУ от борландов (Билдер и дельфя)
К тому же то, что мой исходник должен выводить ОК я знаю, я ж его писал, вот
только он его не выводит, он выводит "а", а это не совсем то, что я хотел :(
Тобишь приведённый мной и процитированный вами исходник заведомо не рабочий.
RJ> В теории красиво, только как мне стековое значение запихнуть в конкретную
RJ> переменную? Hаприме я хочу использовать несколько раз одно и то же
RJ> значение, при этом само собой стек будет меняться.
RJ> Где можно подробнее почитать про написание именно процедур? Hачинал
Hа forth.org.ru можно найти ссылки на литературу. Очень полезно прочитать
"Баранов. Hоздрунов. Язык Форт и его реализации", хотя бы начало.
RJ> читать книжки по форту, в итоге запутался со стеком =) Hе кристальщик я,
RJ> все триггеры и содержимое стека не проконтролю, привык к ЯПВУ от
RJ> борландов (Билдер и дельфя) К тому же то, что мой исходник должен
А там и не надо, Форт в принципе эквивалентен процедурным ЯВУ. Можно писать и
с переменными, просто стек выступает в качестве базовой модели вычислений и
передачи параметров.
VARIABLE A
VARIABLE B
2 A ! \ пишем 2 в A
3 B ! \ пишем 3 в B
A @ B @ + \ читаем из их адресов и складываем, на стеке будет 5
RJ> выводить ОК я знаю, я ж его писал, вот только он его не выводит, он
RJ> выводит "а", а это не совсем то, что я хотел :( Тобишь приведённый мной и
RJ> процитированный вами исходник заведомо не рабочий.
А, ну значит там реализован вариант, выбирающий параметры из входного потока.
Так тоже можно, хотя и не полностью соответствует стилю.
bye