Няшная / Говнокод #6905 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
if ( (value[0] - 'N') == 0 || (value[0] - 'n') == 0 )
   val = 0;
if ( (value[0] - 'Y') == 0 || (value[0] - 'y') == 0 )
   val = 1;

нет, просто сравнить - это слишком скучно и неоригинально.

ЗЫ от автора http://govnokod.ru/5034

Запостил: Dummy00001 Dummy00001, (Updated )

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

        • #define TRUE 0
          #defien FALSE 1
          // оно ?
          Другое, Char1 & Char2 могут давать на каком-то пересечении 1, ну и соответственно...

          //вариант
          val = ( !(c[0] - 'Y') || !(c[0] -'y') );
          Ответить
        • Это внутренне, физически 'true' может не быть единицей. Но нас это не интересует, ибо на уровне языка при конверсии 'true' в целочиселнный тип результат всегда - гарантированно единица.
          Ответить
          • согласен, промахнулся немного. почитал стандарт 🙂
            Ответить
  • if value[0] in ['N','n'] then val := 0
    else if value[0] in ['Y','y'] then val := 1;
    Ответить
    • Ну раз пошла такая пьянка...
      val = 1 if value[0] in 'Yy' else (0 if value[0] in 'Nn' else None)
      Ответить
          • Или
            (lambda (x) (char-equal x #\y))

            или
            (defun test (x) (or (char= x #\y) (char= x #\Y)))

            Целиком:
            (do () ((y-or-n-p "Lisp rules?") t))
            Ответить
          • Это не тождественный код. Но мне нравится код вашей мысли.

            try:
                 val = ('N', 'Y').index(value[0].upper())
            except ValueError:
                 pass
            Ответить
            • Ок... есть 2 варианта тогда 🙂
              1. Очень просто, но выбрасывается не совсем то исключение, что нужно:
              (lambda (x) (ash (position x "nNyY") -1))


              2. И есть сложно (можно было наверное и проще, но раз уж не важно, как именно, то так имо нормально:
              (define-condition n/y-condition () ())
              (defgeneric integer-p (x call-what with-args))
              (defmethod integer-p ((x integer) call-what with-args)
                (apply call-what (cons x with-args)))
              (defmethod integer-p (x call-what with-args)
                (error (make-condition 'n/y-condition)))
              (defun y/n-p (x) (integer-p (position x "nNyY") 'ash '(-1)))

              Единственно, конечно описание ошибке можно было написать какое-то, но это уже кому нужно - тот напишет 🙂
              Ответить
              • Поддерживаю вариант 1 - красиво.
                Настаиваю на применении в варианте 2 cond и char-equal:
                (define-condition yn-condition() ())
                (defun test-yn (x) (cond ((char-equal x #\y) t) ((char-equal x #\n) nil) (t (error (make-condition 'yn-condition)))))


                Нет ничего лучше, чем невзначай начирикать пару строчек на лиспе в уикэнд.
                Ответить
          • вот не знаю откуда тот код
            но очень напомнило груви, в котором можно писать таким же макаром
            Integer val=['N':1,'Y':2].get ("yy".toUpperCase().getChars()[0], null)

            >(lambda (x) (find x "yY"))
            this is incorrect. try again later.
            Ответить
  • Я чет не понял (value[0] - 'N' )зачем это??? если value[0] char то сравнить char можно просто

    if (value[0] =='N' || value[0] =='n' ) если отсутствует метод upper() или аналогичный.
    Ответить
  • ДRDPYEPZQYOICYHOSCGIMSSJPYRNSYXVZDPFJKCPHLKERJEXJPPRDCKJQQOWANNCTQFWWOCHAHVMXKEHEJEEPIGIIDKFLJQXFECVMJOOPVMLGBFLNRNETYKCGBZGBPQKXIFCHLKEAWTHKLMVCWEITCTPXHUKBFWJRKOMQZNLXJCCNNZXIHPZMFNUSDJAOFBKEXNPWYUVJZKRULYQAPRCCDANBRVNQGCPTEFXAJRNUKUNRJIRJXZXCBFORKAXBOFZJIZVEDTFGNBVALJPTGEZWSDMBTCPZNHSPOYPBZRLILNIPMVITRVGNTEBKIHYMJTNGDKIJIKQJGKNRSQPUMHZHYTCYSZVWWQAYJVAQXBGCXEAPCPARPAQGCQHPUJSWALMUO
    Ответить
  • р:S"F:G(F!K"U(H$Z,K.G)M.S?P!P.H!D NG.I,I:IGX G,R.F(Z(K?T$KTF$J:PG,U:U A:CY$Q$V"S,P,K)O?K,Y:Q:O)J N G!Q G(K:V?E$E(R,L:S!H)YY"K)W:U.Q!I"J,D:G$D(N"Q W?L"S(K(G M,F(I$P M$C(W)P(B?J,I Y M(TA!T!C?Y,H"G$D"Z"J)D(U!V:Y"Q:G X!E"Y:U.I,DD:O.E E"Q"F$B?P,T)W U,F(J$C.Z,JD)E?M:H?B?G:P.CA:Y!F?K!L?I)F:C!O:F:Q:G:K.O H A)R?L?X)P:I?M.Z M)D S,M.T:Q A$VU.I:F R?H,R.N(I(J(W,L$Q(Q?U,V J$G?F$G"N X F!EE.S.O,W)S$L!W(F(Q$Y,O)M,Y)Q.Y(R.H!H)L!N:P:J,N,I?E(N"B(GX P!V?L!M.B"EE(S)P)I?V$M$K)S:G(C G,F?E!N J?W$R F?Z"G(N$M?Q,J(B$Y.C,G)W!W:K:G(E"T?H)Q"NKW K(F.QD$P?I?HR,Q(Z,S$S)I?N,V"X(M:G?C"X X(I?Z"M!E,L,C R,Y)K P?V!U!VAA"I(I RO)Q?GS?E!Y)O)O(N EA$K:K"Z,S?G:B"M H?Q.LL(R"L H.IФVIHRCEOCSAUXVWULXHXSTWTXWRHQGSWSMHNMTAWDRXPCPMKNLAJHDOAWSGGGDRRRTGLFELYYIYPUKQUMJNLUPVWEWLXDDNVIHUXDTRAMZICFFNTVFPQNNJJSLGMZPOPY
    Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

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


    8