1. Куча / Говнокод #24077

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    %% wrapper for math:log/1 to avoid dividing by zero
    math_log(0) ->
        1;
    math_log(0.0) ->
        1.0;
    math_log(X) when X < 0 ->
        0; % it's not possible to take a log of a negative number, return 0
    math_log(X) ->
        math:log(X).

    Math, how does it work: https://github.com/folsom-project/bear/commit/6c19d6a2ee031512fca9916dd7cca2fc7ea2a38e

    Запостил: CHayT, 05 Апреля 2018

    Комментарии (6) RSS

    • Экмапринципы теперь и в вашем эрланге.
      Ответить
      • Вот нинада. Экма обычно возвращает NaNы, если хуйню вычисляешь.
        Ответить
    • То ли дело Agda, зависимые типы.
      Ответить
    • На пролог похоже
      Ответить
      • Собственно с него синтаксис и содран.
        Ответить
      • > На пролог похоже

        Ну так, весьма отдалённо. В прологе нет возвращаемых значений, т.е. было бы
        math_log(0, 1).
        math_log(X, 0) :- X < 0. % LOL
        math_log(X, R) :- X > 0,  math:log(X, R). % We're out of green cuts for today
        Ответить

    Добавить комментарий