LINUX.ORG.RU

erlang scheme


0

1

Всем привет.

Давно хотел взяться за ф-ое программирование. Пару раз пробовал lisp, но как-то не пошло. А потом наткнулся на erlang и мне понравилось. Там всё как-то полегче объясняется.

Сейчас читаю sicp, а там scheme. Ну, в общем, начал про scheme читать и вот у меня такой вопрос:

Допустим у меня такой итеративный факториалокод на erlang:

fact(B) ->
   i_fact(B, 1).

i_fact(0, A) ->
   A; 
i_fact(B, A) ->
   i_fact(B-1, A*B).

на scheme:

(define (i_fact b a)
     (if (= b 0)
         a
         (i_fact (- b 1) (* a b))))

(define (fact b)
     (i_fact b 1))

Можно ли избавится от if в scheme, что б так же как в erlang конкретный clause (или как он там называется, я не уверен, что правильно) выбирался автоматом, а то как то громоздко получается.

Спасибо.

★★★★

Последнее исправление: nanoolinux (всего исправлений: 1)

А не кажется ли вам странным, что в девелопменте пошла какая-то хрень

Вместо реальных задач идет какая-то дребедень, типа какие скобочки кавайней?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.