Куча говна / Говнокод #12074 Ссылка на оригинал

0

  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 HaskellGovno, (Updated )

Комментарии (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
    Ответить
      • Есть базовые конструкции (базис), на основе которых строятся все возможности языка (надстройка). Не знаю ниодного языка, где бы не было базовой консрукции наподобие let, так что пост нужно покрасить в зеленый. Разве что в каком-нибудь Forth, и то скорее всего я не прав насчет последнего.
        Ответить
        • Вот хаскелю кстати let не нужен:
          -- было
          let x = 5 in some
          -- стало
          (\x -> some) 5
          Так что в нем это удобный сахарок, не более того.
          Ответить
          • очень правильное замечание ^_^
            кстати, вам можно преподавателем даже идти. То как вы рассказали про сахар do в соседней теме - это нечто. Я ещё не разбирался с монадами, но сразу все понял. ^_^
            Ответить
            • Хм. А про то во что раскрывается do вроде во всех книжках пишут в разделах про монады.
              Ответить
              • Я до туда ещё не дочитал наверное. :-[
                Сейчас читаю вот это :-[
                http://files.books.ru/pic/1816001-1817000/1816402/892192283c.jpg
                Но там как то с реальным применением Хаскела - не очень. Я может ещё не дочитал, но помоему там даже массивов не будет за всю книгу. Не говоря уж о изучении стандартной библиотеки кроме некоторых алгоритмов над списками. Имхо не удачный выбор для серьёзного программирования. Как оказалось это обычный руссифицированный http://learnyouahaskell.com/
                Ответить
  • Точного соответствия нет.

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

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

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

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8