LINUX.ORG.RU

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

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

Ничего против лиспов не имею (если из них вырезать всё кроме переменных, циклов, иф-ов и процедур; а также добавить статическую типизацию), но объективно они не взлетели, поэтому смысла мёртвую лошадь пинать не вижу. Хочется делать лисп - делай липс, но синтаксис нужно использовать сишный, людям нравятся фигурные скобки.

(defun factorial(n)
    (if (= n 1)
            (setq a 1)
    )
    (if (> n 1)
        (setq a (* n (factorial (- n 1))))
    )
    (format t "~D! is ~D" n a)
)

->

function factorial(n: integer) {
  var a: integer;

  if (n == 1) {
    a := 1;
  }
  if (n > 1) {
    a := n * factorial(n - 1);
  }
  printf("%d! is %d", n, a);
}

Видишь, ничего по сути не изменилось, а результат - почти идеален.

Исправление vbr, :

Ничего против лиспов не имею (если из них вырезать всё кроме переменных, циклов, иф-ов и процедур; а также добавить статическую типизацию), но объективно они не взлетели, поэтому смысла мёртвую лошадь пинать не вижу. Хочется делать лисп - делай липс, но синтаксис нужно использовать сишный, людям нравятся фигурные скобки.

(defun factorial(n)
    (if (= n 1)
            (setq a 1)
    )
    (if (> n 1)
        (setq a (* n (factorial (- n 1))))
    )
    (format t "~D! is ~D" n a)
)

->

function factorial(n: integer) {
  if (n == 1) {
    a := 1;
  }
  if (n > 1) {
    a := n * factorial(n - 1);
  }
  printf("%d! is %d", n, a);
}

Видишь, ничего по сути не изменилось, а результат - почти идеален.

Исправление vbr, :

Ничего против лиспов не имею (если из них вырезать всё кроме переменных, циклов, иф-ов и процедур; а также добавить статическую типизацию), но объективно они не взлетели, поэтому смысла мёртвую лошадь пинать не вижу. Хочется делать лисп - делай липс, но синтаксис нужно использовать сишный, людям нравятся фигурные скобки.

(defun factorial(n)
    (if (= n 1)
            (setq a 1)
    )
    (if (> n 1)
        (setq a (* n (factorial (- n 1))))
    )
    (format t "~D! is ~D" n a)
)

->

function factorial(n: integer) {
  if (n == 1) {
    a := 1;
  }
  if (n > 1) {
    a := n * factorial(n - 1);
  }
  printf("%d! is %d", n, a);
  }
}

Видишь, ничего по сути не изменилось, а результат - почти идеален.

Исправление vbr, :

Ничего против лиспов не имею (если из них вырезать всё кроме переменных, циклов, иф-ов и процедур; а также добавить статическую типизацию), но объективно они не взлетели, поэтому смысла мёртвую лошадь пинать не вижу. Хочется делать лисп - делай липс, но синтаксис нужно использовать сишный, людям нравятся фигурные скобки.

(defun factorial(n)
    (if (= n 1)
            (setq a 1)
    )
    (if (> n 1)
        (setq a (* n (factorial (- n 1))))
    )
    (format t "~D! is ~D" n a)
)

->

function factorial(n: integer) {
  if (n == 1) {
    a := 1;
  }
  if (n > 1) {
    a := n * factorial(n - 1);
  }
  printf("%d! is %d", n, a);
  }
}

Видишь, ничего синтаксически не изменилось, а результат - почти идеален.

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

Ничего против лиспов не имею (если из них вырезать всё кроме переменных, циклов, иф-ов и процедур; а также добавить статическую типизацию), но объективно они не взлетели, поэтому смысла мёртвую лошадь пинать не вижу. Хочется делать лисп - делай липс, но синтаксис нужно использовать сишный, людям нравятся фигурные скобки.