покритикуйте код

 
0
 
Functional languages
ava
chaos | 27.10.2011, 22:36


sum_bin(A, B) when is_list(A), is_list(B) ->
    sum_bin2(lists:reverse(A), lists:reverse(B), "0").

sum_bin2([], [], A) ->
    A;

sum_bin2([], L, "0") -> lists:reverse(L);

sum_bin2([], L, "1") ->
    sum_bin2(L, "1", "0");

sum_bin2(L, [], "0") -> lists:reverse(L);

sum_bin2(L, [], "1") ->
    sum_bin2(L, "1", "0");

sum_bin2([48|R1], [48|R2], A) ->
    sum_bin2(R1, R2, "0") ++ A;

sum_bin2([49|R1], [49|R2], A) ->
    sum_bin2(R1, R2, "1") ++ A;

sum_bin2([49|R1], [48|R2], "0") -> 
    sum_bin2(R1, R2, "0") ++ "1";

sum_bin2([49|R1], [48|R2], "1") -> 
    sum_bin2(R1, R2, "1") ++ "0";

sum_bin2([48|R1], [49|R2], "0") ->
    sum_bin2(R1, R2, "0") ++ "1";

sum_bin2([48|R1], [49|R2], "1") ->
    sum_bin2(R1, R2, "1") ++ "0".


Боюсь что здесь нет декларативного подхода тк по коду видно что тут показано не что должно получиться, а как

Жду ваших отзывов: замечаний, комментариев, других способов решения(декларативных)
Comments (0)

Comments are not added

Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
  chaos
advanced
Submit