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