LINUX.ORG.RU

История изменений

Исправление Gentooshnik, (текущая версия) :

(defvar a "Gentooshnik")
(defvar b "MOPKOBKA")

(set-macro-character #\,
  (lambda (s c)
    (symbol-value (read s)))))

(set-macro-character #\.
  (lambda (s c)
    (throw :terminate nil)))

(defun main ()
  (catch :terminate
    (loop :do (format t "Please, introduce yourself~%")
          :do (format t "Hello, ~A~%" (read)))))
* (main)
Please, introduce yourself
a
Hello, A
Please, introduce yourself
b
Hello, B
Please, introduce yourself
,a

Hello, Gentooshnik
Please, introduce yourself
,b

Hello, MOPKOBKA
Please, introduce yourself
.
*

Я предупреждал о бессмысленности и беспощадности.

Ближе к практике, недавно (с версии 6) позабавило что в C# появилась таки строковая интерполяция, которая уже давно есть в любом уважающем себя языке. В некоторых, как Common Lisp, в виде библиотеки.

Я сейчас дам работу с матрицами и структурами, так там лисп в 10 раз длинее выйдет без [], ->, и за счет скобок.

Если для решения задачи на C++ нужен целый Python и огромная сторонняя библиотека с компилятором, то честным будет и лиспу разрешить использовать библиотеки, но тогда это превратится в мерянье библиотеками. Из нужного на практике примерно всё на любом языке можно сделать. Ну, если FFI есть.

Но давай, как будет время - посмотрю. Возможно завтра. (тут без двух минут два ночи уже)

Исходная версия Gentooshnik, :

(defvar a "Gentooshnik")
(defvar b "MOPKOBKA")

(set-macro-character #\,
  (lambda (s c)
    (symbol-value (read-from-string (read-line s t nil t)))))

(set-macro-character #\.
  (lambda (s c)
    (throw :terminate nil)))

(defun main ()
  (catch :terminate
    (loop :do (format t "Please, introduce yourself~%")
          :do (format t "Hello, ~A~%" (read)))))
* (main)
Please, introduce yourself
a
Hello, A
Please, introduce yourself
b
Hello, B
Please, introduce yourself
,a

Hello, Gentooshnik
Please, introduce yourself
,b

Hello, MOPKOBKA
Please, introduce yourself
.
*

Я предупреждал о бессмысленности и беспощадности.

Ближе к практике, недавно (с версии 6) позабавило что в C# появилась таки строковая интерполяция, которая уже давно есть в любом уважающем себя языке. В некоторых, как Common Lisp, в виде библиотеки.

Я сейчас дам работу с матрицами и структурами, так там лисп в 10 раз длинее выйдет без [], ->, и за счет скобок.

Если для решения задачи на C++ нужен целый Python и огромная сторонняя библиотека с компилятором, то честным будет и лиспу разрешить использовать библиотеки, но тогда это превратится в мерянье библиотеками. Из нужного на практике примерно всё на любом языке можно сделать. Ну, если FFI есть.

Но давай, как будет время - посмотрю. Возможно завтра. (тут без двух минут два ночи уже)