Jan. 24th, 2007

lomeo: (лямбда)
Паттерн-матчинг в Haskell всё наворачивают.

А вот почему не сделают как в Прологе - если два идентификатора в паттерне совпадают, значит по этим позициям должны быть равные значения.

isDup (x:x:_) = True
isDup _       = False


аналогично более сложному

isDup (x:y:_) | x == y = True
isDup _                = False


И ещё! Не нравится мне, что при использовании многострочном объявлении функции приходится писать её название несколько раз.
А как было бы чудесно (объединяя оба примера)

isDup (x:x:_) = True
_     _       = False


Подчерк как повторение имени функции здесь условность, можно придумать что нибудь другое.
Это неважно.
lomeo: (лямбда)
Когда мы пишем монадическую функцию с хвостовой рекурсией, то явно эта функция не хвостато-рекурсивная:

loop = do
    cmd <- getLine
    if (cmd == ":q")
        then return ()
        else loop


чуть-чуть кода и много вопросов )

Profile

lomeo: (Default)
Dmitry Antonyuk

April 2024

S M T W T F S
 123456
7891011 1213
14151617181920
21222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 20th, 2025 01:42 pm
Powered by Dreamwidth Studios