Речь в данном случае о "минимальном" ("сокращенном") наборе команд для ФП или ВФМ (но не минимальном наборе языка Форт!), из которого
можно получить остальные слова.
Получены они в
ходе дискуссии и дополняться могут только необязательными для ФП или ФВМ словами. Необязательность подтверждается возможностью их выражения через минимальный набор.
При этом, выражение должно быть на языке Форт с использованием стандартных (в смысле "понятных всем") определяющих и управляющих конструкций.
вопрос писал(а):
Что-то я не пойму. арифметика элементарная и логика не полностью?
Где NOT? или INVERSE
Код:
: INVERSE -1 XOR ;
: TRUE -1 ; : FALSE 0 ;
: NOT IF FALSE ELSE TRUE THEN ;
Pretorian писал(а):
А почему 2/ , а не более функциональное слово с указанным количеством сдвига?
Код:
: 2* DUP ADD ;
: LSHIFT 0 DO 2/ LOOP ; : RSHIFT 0 DO 2* LOOP ;
: SHIFT DUP 0= IF EXIT THEN DUP 0> IF LSHIFT ELSE NEG RSHIFT THEN ;
Речь в данном случае о "минимальном" ("сокращенном") наборе команд для ФП или ВФМ (но не минимальном наборе языка Форт!), из которого [b]можно получить[/b] остальные слова.
Получены они в [url=http://fforum.winglion.ru/viewtopic.php?t=1913]ходе дискуссии[/url] и дополняться могут только необязательными для ФП или ФВМ словами. Необязательность подтверждается возможностью их выражения через минимальный набор.
При этом, выражение должно быть на языке Форт с использованием стандартных (в смысле "понятных всем") определяющих и управляющих конструкций.
[quote="вопрос"]Что-то я не пойму. арифметика элементарная и логика не полностью?
Где NOT? или INVERSE[/quote]
[code]: INVERSE -1 XOR ;
: TRUE -1 ; : FALSE 0 ;
: NOT IF FALSE ELSE TRUE THEN ;
[/code]
[quote="Pretorian"]А почему 2/ , а не более функциональное слово с указанным количеством сдвига?[/quote]
[code]: 2* DUP ADD ;
: LSHIFT 0 DO 2/ LOOP ; : RSHIFT 0 DO 2* LOOP ;
: SHIFT DUP 0= IF EXIT THEN DUP 0> IF LSHIFT ELSE NEG RSHIFT THEN ;[/code]