1. Haskell / Говнокод #13849

    −94

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    sel :: Int -> Int -> Expr
    sel i n = lam [pvar "x"] (caseE (var "x") [alt])
    where alt :: Match
    alt = simpleM pat rhs
    pat :: Patt
    pat = ptup (map pvar as)
    rhs :: Expr
    rhs = var (as !! (i-1)) -- !! is 0 based
    as :: [String]
    as = ["a"++show i | i <- [1..n] ]

    [quote]The code for sel is more verbose than that for printf because it
    uses explicit constructors for expressions rather than implicit ones.[/quote]
    Сообственно это все объяснение к данному коду:
    http://research.microsoft.com/en-us/um/people/simonpj/papers/meta-haskell/meta-haskell.pdf
    , так как и это все очень очевидно для автора, в то время как printf был и без объяснений очевиден даже мне. Автор хоть бы одно значение сокращения потрудился объяснить. Впрочем сокращениями стандартная библиотека хаскеля любит страдать...

    Запостил: HaskellGovno, 24 Сентября 2013

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

    • > microsoft.com
      > haskell
      Казалось бы причем тут хаскель? Поделил на ноль.
      Ответить
      • Если что, то создатель хаскеля уже много лет работает на мелкософт
        Ответить
        • А создатель F# пользуется emacs
          Ответить
          • Как и Knuth, Steele, Bloch, Armstrong, упомянутый Саймон Пейтон Джонс и много кто ещё. Но это не значит, что использование emacs сделает кого-то хорошим программистом.
            Ответить

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