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

    +126

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    infixr 6 `then'`
    then' True = fst
    then' False = snd
    if' = id
    else' suc fail = (suc, fail)
    main = do
        print $ if' (1<5) `then'` "true" `else'` "false"
        print $ if' False `then'` "true" `else'` "false"

    bormand
    У ифа особый синтаксис. Как ты его реализуешь?
    Challenge accepted:
    Сначала был тред
    http://govnokod.ru/12068#comment159236
    а потом родилось говно:
    http://ideone.com/rOKDPP
    Реализовал if. За правильными приоритетами операций и ассоциативностью не следил.

    Запостил: HaskellGovno, 07 Ноября 2012

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

    • Элсо упрощенная реализация оператора if на Nemerle:
      macro @if (cond, e1, e2)
      syntax ("if", "(", cond, ")", e1, Optional (";"), "else", e2)
      {
        <[ 
          match ($cond)
          { 
            | true => $e1 
            | _    => $e2
          } 
        ]>
      }
      Ответить
      • Кстати, что примечательно, именно так, но немного сложнее, в стандартной библиотеке Nemerle реализована синтаксическая конструкция языка под названием if.
        Ответить
    • mixfix-оператор if из Adga:
      if_then_else_ : {A : Set} Bool -> A -> A -> A
      if true then x else y = x
      if false then x else y = y
      Ответить
    • Какой зеленый код.
      Ответить
    • А do слабо?
      Ответить
      • И let.
        Ответить
        • метациклический haskell
          Ответить
        • Есть базовые конструкции (базис), на основе которых строятся все возможности языка (надстройка). Не знаю ниодного языка, где бы не было базовой консрукции наподобие let, так что пост нужно покрасить в зеленый. Разве что в каком-нибудь Forth, и то скорее всего я не прав насчет последнего.
          Ответить
          • Вот хаскелю кстати let не нужен:
            -- было
            let x = 5 in some
            -- стало
            (\x -> some) 5
            Так что в нем это удобный сахарок, не более того.
            Ответить
            • очень правильное замечание ^_^
              кстати, вам можно преподавателем даже идти. То как вы рассказали про сахар do в соседней теме - это нечто. Я ещё не разбирался с монадами, но сразу все понял. ^_^
              Ответить
              • Learn You a Haskell with Bormand
                Ответить
              • Хм. А про то во что раскрывается do вроде во всех книжках пишут в разделах про монады.
                Ответить
                • Я до туда ещё не дочитал наверное. :-[
                  Сейчас читаю вот это :-[
                  http://files.books.ru/pic/1816001-1817000/1816402/892192283c.jpg
                  Но там как то с реальным применением Хаскела - не очень. Я может ещё не дочитал, но помоему там даже массивов не будет за всю книгу. Не говоря уж о изучении стандартной библиотеки кроме некоторых алгоритмов над списками. Имхо не удачный выбор для серьёзного программирования. Как оказалось это обычный руссифицированный http://learnyouahaskell.com/
                  Ответить
                  • Можно почитать RWH.
                    Ответить
                  • Ты купил русскую версию?
                    Ответить
                    • Никому не говори, но скачал. :-)
                      Ответить
                      • Блин дай ссылку, я её дня два уже ищу, создам виртуалов заплюсую.
                        Ответить
                        • Сорри. Давно качал. :-[ Врятли где-то в истории сохранилось. Но если найду - запощу. Качал вроде с торрента или DC++хаба.
                          Ответить
                          • нашёл только http://kniga-diva.ru/downloads/386641
                            но файл битый.
                            Ответить
        • http://ideone.com/Wjtg7o
          #define let auto
          let a = 5;
          Ответить
    • Точного соответствия нет.

      Можно писать так:
      http://ideone.com/c0Rpqd

      Хаскелловский же if отловит все неправльные синтаксически записи.
      Ответить
    • Нет, главное к подружкам своим, таким же потаскушкам, она меня не ревновала, к проституткам каких иногда приводил прямо домой, в те дни, когда она была «занята» тоже, а тут, к матери родной ревнует!
      Ответить

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