Поиск:

Ответ в темуСоздание новой темы Создание опроса
> покритикуйте код, сложение бинарных чисел 
:(
    Опции темы
chaos
Дата 27.10.2011, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: нет
Всего: 44



Код


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".


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

Жду ваших отзывов: замечаний, комментариев, других способов решения(декларативных)
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума «Функциональные языки: общие вопросы»
Void
  • Пожалуйста, создавайте темы с содержательными названиями. Если у Вас вопрос по конкретному языку, укажите его в заголовке, например: «[Haskell] Как использовать монаду State».
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Функциональные языки: общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0399 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.