Змея / Говнокод #9982 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
def success_operation(operation):
    """помечаем операцию как оплаченную"""

    #получаем коллбэк и выполняем его
    if operation.close_callback:
        path, callback_name, params =\
            (lambda v, f: (len(v) > 1 and f(v[0], v[1])) or f(v[0]))(
                    (operation.close_callback or '').split('|'),
                    lambda n, k = None:
                        (lambda n: (lambda l: ['.'.join(l[0:len(l) - 1]) or 'app.billing.callbacks'] + [l[len(l) - 1]])(
                            n.split('.'))
                        )(n) + \
                        [(lambda k: not (k is None) and reduce(
                                lambda h, t: (lambda a, p: a.setdefault(*p) and a)(
                                    h,
                                    (lambda l: (l[0].strip(), l[1].strip()))(t.split('='))
                                ),
                                k.split(','),
                                {})
                         )(k) or {}])

Человек правильно живет, но зря.

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

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

  • (lambda n: ...
      (lambda n: ...))

    Зачем такое может вообще понадобиться?
    Ответить
    • Возможно, причина в том, что в питоне в теле лямбды может быть только одно выражение. Вот человек и вкладывает их как матрёшки.
      Ответить
      • Это понятно. Но - зачем? Может разбить на три, в крайнем случае?
        Ответить
      • Не, я имел в виду то, что аргумент внешней и внутренней лямбды с одним и тем же именем - т.е. его специально "затирают" внутри вложенной лямбды - но я не могу представить жизненную ситуацию когда бы это было нужно.
        Ответить
        • видимо, замыкания там просто не нужно было, а новую букву придумывать было лень
          Ответить
          • Автор столько трудился, а на новую букву сил не хватило? 🙂
            Ответить
  • Ну как. Когда туториалов по хаскелю перечитаешь, и не такое понадобится))
    Ответить
      • Я так догадываюсь, что тут делается попытка изобрести регулярное выражение типа:
        /(([^=|]*)=([^|]*)|)+/g
        - ну или что-то очень похожее. Угадал? 🙂
        Ответить
  • не Pythonic. Такое ощущение, что человек тренировался использовать питоньи лямбды. В хаскелле так тоже не делают, кстати: композиция функций предпочтительней лямбд, и автоматическое каррирование сильно помогает их избегать.
    Ответить
  • Зашел сюда прочитать "ехал лямбда через лямбда".
    WTF???
    Ответить

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

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

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


    8