Исправление 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 есть.
Но давай, как будет время - посмотрю. Возможно завтра. (тут без двух минут два ночи уже)