Micro Lisp. Основные понятия, структуры и функции. Яшин Л.З. - 23 стр.

UptoLike

Составители: 

23
()
READ лишь читает выражение и возвращает в качестве значения само это
выражение, после чего вычисления продолжаются.
PRINT переводит строку, выводит значение и пробел
Для вывода выражений можно использовать функцию PRINT. Эта функция с
одним аргументом, которая сначала вычисляет значение аргумента, а затем выводит
это значение. Функция PRINT перед выводом аргумента пропускает строку,
переходит на следующую строку, а после него выводит пробел. Таким образом,
значение выводится всегда на новую строку:
[0] (print (+ 2 3))
5
[1] (print '(+ 2 3))
(+ 2 3)
[2] (print (eval '(+ 4 5)))
9
PRIN1 и PRINC выводят без перевода строк
Если желательно вывести последовательно на одну строку более одного
выражения, то можно использовать функции PRIN1 или PRINC. PRIN1 в отличие от
PRINT не переходит на новую строку и не выводит пробел:
[3] (begin (prin1 1) (prin1 2) (print 3))
12
3
[4] (begin (prin1 1) (prin1 2) (print 3) (print 4))
12
3
4
Как функция PRINT, так и PRIN1 можно выводить кроме атомов и списков и
другие типы данных, например, строки, представляемые последовательностью знаков,
заключенных с обеих сторон в кавычки ("). Таким образом, строка выводится вместе с
ограничителями:
[5] (prin1 "а b с")
"а b с"
Более приятный вид с точки зрения пользователя можно получить при помощи
функции PRINC. Она выводит лисповские объекты в том же виде, как и PRIN1, но
преобразует некоторые типы данных в более простую форму. Функцией PRINC мы
можем напечатать строку без ограничивающих ее кавычек и специальные знаки без
их выделения:
[6] (princ "а b с")
а b с
                                        23

       ()
      READ лишь читает выражение и возвращает в качестве значения само это
выражение, после чего вычисления продолжаются.

PRINT переводит строку, выводит значение и пробел
      Для вывода выражений можно использовать функцию PRINT. Эта функция с
одним аргументом, которая сначала вычисляет значение аргумента, а затем выводит
это значение. Функция PRINT перед выводом аргумента пропускает строку,
переходит на следующую строку, а после него выводит пробел. Таким образом,
значение выводится всегда на новую строку:
       [0] (print (+ 2 3))

       5
       [1] (print '(+ 2 3))

       (+ 2 3)
       [2] (print (eval '(+ 4 5)))

       9

PRIN1 и PRINC выводят без перевода строк
     Если желательно вывести последовательно на одну строку более одного
выражения, то можно использовать функции PRIN1 или PRINC. PRIN1 в отличие от
PRINT не переходит на новую строку и не выводит пробел:
       [3] (begin (prin1 1) (prin1 2) (print 3))
       12
       3
       [4] (begin (prin1 1) (prin1 2) (print 3) (print 4))
       12
       3
       4
      Как функция PRINT, так и PRIN1 можно выводить кроме атомов и списков и
другие типы данных, например, строки, представляемые последовательностью знаков,
заключенных с обеих сторон в кавычки ("). Таким образом, строка выводится вместе с
ограничителями:
        [5] (prin1 "а b с")
       "а b с"
      Более приятный вид с точки зрения пользователя можно получить при помощи
функции PRINC. Она выводит лисповские объекты в том же виде, как и PRIN1, но
преобразует некоторые типы данных в более простую форму. Функцией PRINC мы
можем напечатать строку без ограничивающих ее кавычек и специальные знаки без
их выделения:
       [6] (princ "а b с")
       аbс