Clojure (или Lisp) эквивалентный из составного булева теста

По умолчанию переменные в js являются глобальными, поэтому, если вы напишите что-то вроде:

let i = 30

в вашей функции, она будет локальной

21
задан 5 revs, 3 users 69% 22 April 2010 в 12:11
поделиться

2 ответа

В языке Common LISP и схеме

(and (= a something) (= b another) (foo))
35
ответ дан Doug Currie 29 November 2019 в 06:35
поделиться

В языке Common LISP следующее является также общей идиомой:

(when (and (= a something) (= b another))
  (foo))

Сравнивают это с ответом Doug Currie с помощью (and ... (foo)). Семантика является тем же, но в зависимости от типа возврата (foo), наиболее распространенные программисты Lisp предпочли бы один по другому:

  • Использование (and ... (foo)) в случаях, где (foo) возвраты булевская переменная.

  • Использование (when (and ...) (foo)) в случаях, где (foo) возвраты произвольный результат.

исключением, которое доказывает правило, является код, где программист знает обе идиомы, но намеренно пишет (and ... (foo)) так или иначе. :-)

17
ответ дан David Lichteblau 29 November 2019 в 06:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: