1. Python / Говнокод #21920

    −74

    1. 1
    p = lambda a, b: a + b; m = lambda a, b: a * b; d = lambda a, b: a / b; x=float(input()); c=float(input()); print(p(x, c), m(x, c), d(x, c))

    Запостил: PanZagloba, 30 Декабря 2016

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

    • num1, num2 = float(input()), float(input())
      print(num1 + num2, num1 * num2, num1 / num2)

      И чо? "Мама, мама, я узнал, что в Питоне есть лямбды"?
      Ответить
      • > num1, num2 = float(input()), float(input())
        Хорошо хоть, что в пистоне оговорён порядок вычисления аргументов в правой части таких присваиваний
        https://docs.python.org/3/reference/expressions.html#evaluation-order
        Ответить
        • Он везде оговорен, кроме долбоси.
          Ответить
          • > Он везде оговорен
            Нет, не везде.
            Ответить
            • Где не оговорен?
              Ответить
              • в хачкиле
                Ответить
              • OCaml, например.

                In Objective CAML, the order of evaluation of arguments is not specified.
                -- https://caml.inria.fr/pub/docs/oreilly-book/html/book-ora029.html


                В Rust тоже не определён раньше был, сейчас не знаю.
                Ответить
                • Экзотические долбоязыки? А если про императивные говорить?
                  Ответить
                  • лол, а кто унас не экзотичесекий?
                    php?
                    Ответить
                    • Лол, в PHP аргументы иногда не вычисляются вовсе
                      http://stackoverflow.com/questions/39273317/order-of-evaluation-of-function-arguments-in-php
                      Ответить
                    • Песдуешь смотришь статистику на чем пишут.
                      Ответить
      • показать все, что скрытоПарень, я специально пробовал запутать.
        Ответить
        • Вот после этого въебал минус. Нахир ты сюда свои хеловорлды постишь?
          Ответить
        • До Настеньки тебе ещё далеко.
          Ответить
        • ЭТО теперь называется "запутать"?

          Когда я увидел несколько лямбд в одной строке - сначала подумал, что там хотя-бы несколько вложенных замыканий, с которыми без пол-литры не разобраться, а здесь самое примитивное использование именованных лямбд, какое только можно придумать.
          Ответить
        • Вот нормальный говнокод с лямбдами http://govnokod.ru/20052
          Код из оп-поста препроцессируется в
          (lambda
            sqrt =  lambda  x, eps:
              (lambda
                square =  lambda  x: x * x,
                mean =  lambda  x, y: 0.5 * (x + y)
                :
                (lambda
                  good_enough =  lambda  y: abs(square(y) - x) < eps
                  :
                  (lambda
                    myiter = (lambda f: (lambda *a, **b: f(f, *a, **b)))(lambda  self, l, r:
                                mean(l, r)
                                if good_enough(mean(l, r))
                                else (self(self, mean(l, r), r)
                                      if square(mean(l, r)) < x
                                      else self(self, l, mean(l, r))
                                     )
                             )
                    :
                    myiter(0, max(x, 1))
                  )()
                )()
              )()
            :
            (lambda _ =
              sys.stdout.write('test
          ')
               :
              sys.stdout.write(str(sqrt(pycan.load('mymodule.py')(float(raw_input('vvedite chislo: '))), 0.000001)) + '
          ')
            )()
          )()


          А это подсчет квадратного корня вместе с вводом-выводом одним выражением - однострочник на питоне.
          Ответить
    • p - plus
      m - minus хер там multiply
      Ответить

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