Уже 5 лет разрабатываю на С++. И до сих пор не хочу ни на что его менять. Но вдруг появилось желание познакомиться с функциональными языками, в частности Erlang. На Yac2011 один умный дядечка призывал изучать другие языки программирования, т.к. это помогает взглянуть на вещи под другим углом. Ведь простые в одних языках конструкции, могут быть сложно выразимы в других. На эту тему есть отличное видео на TED (правда, про natural languages, но один в один):
Вдохновленный этими идеями и, несмотря на покручивания у виска коллег, начал читать Программирование в Erlang. Ф. Чезарини, С. Томпсон. После первых 2-3 глав выбрал в качестве helloworld решить problem1 на projecteuler на Erlang. Минут через 30 насилия над моим императивным мозгом выдавил:
-module(problem001).
-export([solve/1]).
% solve routine calculates sum of all natural numbers <= N which are multiples of 3 or 5
solve(N) when N == 0 ->
0;
solve(N) when N rem 3 == 0 ->
N + solve(N-1);
solve(N) when N rem 5 == 0 ->
N + solve(N-1);
solve(N) ->
solve(N-1).
Комментариев нет:
Отправить комментарий