LINUX.ORG.RU

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

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

Когда такое городят на Си++ ещё можно понять. Хотя после нескольких уточнений системы правил хочется написать что-то вроде

int f(int x)
{
  return run_script("(if (< x 2) 1
    (do ((y 1 z) (z 1 (+ y z)) (x (- x 2) (- x 1))) 
        ((= x 0) (- z 1))))", 
    script_args("x", x));
}

А вот когда в таком стиле пишут на JS (в котором есть eval) и даже на clojure (в которой есть даже макросы), совершенно не понимаю.

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

Когда такое городят на Си++ ещё можно понять. Хотя после нескольких уточнений системы правил хочется написать что-то вроде

int f(int x)
{
  return run_algo("(if (< x 2) 1
    (do ((y 1 z) (z 1 (+ y z)) (x (- x 2) (- x 1))) 
        ((= x 0) (- z 1))))", 
    script_args("x", x));
}

А вот когда в таком стиле пишут на JS (в котором есть eval) и даже на clojure (в которой есть даже макросы), совершенно не понимаю.