PICK: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Строка 37: Строка 37:


== Реализация ==
== Реализация ==
Слово PICK в ФОРТ-ЕС было [[примитив]]ом. Вот его определение:
Слово PICK в ФОРТ-ЕС было [[примитив]]ом. Вот его описание и определение:
<PRE>
<PRE>
PICK        WN,..,,W0,+N->WN,...,W0,WN ПРОДУБЛИРОВАТЬ          12
            N-E СВЕРХУ ЗНАЧЕНИЕ
                     Экран номер 12
                     Экран номер 12
( 31.03.86    ROLL  PICK  2DUP 2DROP  2SWAP  2OVER  2ROT )
( 31.03.86    ROLL  PICK  2DUP 2DROP  2SWAP  2OVER  2ROT )

Версия от 10:50, 26 марта 2016

PICK (взять, читается «пик») — стандартное слово Каллисто. Продублировать u-ное сверху значение.

PICK           ( xu ... x1 x0 u -- xu ... x1 x0 xu )  Дублировать u-ное сверху.

Удаляет u. Копирует элемент стека с номером u (считая от нуля, само число u при этом не считается) и записывает его наверх стека.

Ввод слова PICK

В режиме ЛАТ последовательно нажмите четыре клавиши  6   7   С/П   9 

Детали реализации

Верхний элемент стека имеет номер нуль, так что 0 PICK равносильно , а 1 PICK равносильно OVER.

PICK в стандарте ANS Forth

6.2.2030   PICK                                                        CORE EXT
           ( xu ... x1 x0 u -- xu ... x1 x0 xu )
           Удаляет u. Копирует xu на вершину стека. Неопределенная ситуация 
           существует, если до выполнения PICK на стеке меньше u+2 элементов.
A.6.2.2030   PICK
0 PICK эквивалентно DUP, и 1 PICK эквивалентно OVER.

PICK в предыдущем стандарте Forth-83 (англ.)

     PICK         +n -- 16b                     83
          16b is a copy of the +nth stack value, not counting +n
          itself.  {0..the number of elements on stack-1}
                  0 PICK is equivalent to DUP
                  1 PICK is equivalent to OVER

PICK в стандарте Forth-79 (англ.)

PICK           n1 -- n2                      240
    Return the contents of the n1-th stack value,  not counting n1
    itself.  An error condition results for n less than one.
         2 PICK  is equivalent to OVER.  {1..n}

История

В Форте-83 действие слова PICK подверглось кардинальному изменению.

В Каллисто слово PICK совместимо с версией Форта-83 и последующими. В программах, написанных для Форта-79 и более ранних версий, слово PICK надо заменять на последовательность 1− PICK

Реализация

Слово PICK в ФОРТ-ЕС было примитивом. Вот его описание и определение:

PICK         WN,..,,W0,+N->WN,...,W0,WN ПРОДУБЛИРОВАТЬ          12
             N-E СВЕРХУ ЗНАЧЕНИЕ

                     Экран номер 12
( 31.03.86    ROLL  PICK  2DUP 2DROP  2SWAP  2OVER  2ROT )

CODE PICK ( WN,,..,W0,+N->WN,...,W0,WN)
    RW2 PULL,   RW2 RW2 AR, ERCONDB BM,
    RW1 2 (, RW2 RSTACK LH,   PUTRW1 B,   END-CODE

Ссылки


  У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.


  Это заготовка статьи. Вы можете помочь проекту, дополнив её.