LINUX.ORG.RU

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

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

Кстати, а вот как представляется типичный лисповый код в виде списка A, если немного подкрутить синтаксис лиспа:

(defun foo (x y)
  (let ((z (* 2 x y)))
    (+ (expt x 2) z (expt y 2)))))
С пергой (которую, я использую вдоль и поперёк в своём коде, тотально, которую, конечно, прокляли все true лисперы, но в asdf нечто подобное, под названием nest, всё же включили. Мне кажется лет через 5 после того, как я первый раз её прорекламировал, но не буду настаивать на приоритете - идея-то очевидная) получается так:
(defun foo (x y)
  (perga
    (let z (* 2 x y))
    (+ (expt x 2) z (expt y 2)))))
И дальше, вставляя в proc неявную пергу и используя тиклевый «неявный список, битый по концам строк», получаем на псевдотикле такое:
proc foo {x y} {
  let z [* 2 x y]
  + [expt x 2] z [expt y 2]
}
Очевидно, данный синтаксис получается намного более лёгким, чем был в начале (из 9 пар скобок осталось 5), хотя не все любители скобочек с этим согласятся.

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

Кстати, а вот как представляется типичный лисповый код в виде списка A, если немного подкрутить синтаксис лиспа:

(defun foo (x y)
  (let ((z (* 2 x y)))
    (+ (expt x 2) z (expt y 2)))))
С пергой (которую, конечно, прокляли все true лисперы, но в asdf нечто подобное, под названием nest, всё же включили. Мне кажется лет через 5 после того, как я первый раз её прорекламировал, но не буду настаивать на приоритете - идея-то очевидная).
(defun foo (x y)
  (perga
    (let z (* 2 x y))
    (+ (expt x 2) z (expt y 2)))))
И дальше, вставляя в proc неявную пергу,
proc foo {x y} {
  let z [* 2 x y]
  + [expt x 2] z [expt y 2]
}
Очевидно, данный синтаксис получается намного более лёгким, чем был в начале (из 9 пар скобок осталось 5), хотя не все любители скобочек с этим согласятся.