Pull to refresh

Comments 13

По количеству скобок можно с Лиспом соревноваться. :)
Не назвал бы это функциональным программированием… бред полнейший
ну например что мешало определить несколько «чистых» функций и потом с помощью композиции получить результат? а это называется «мне захотелось в одно выражение запихнуть побольше» :)

вы своим примером отпугнёте всех от ФП, имхо
я не зря сказал «некое подобие функционального программирования.»
на самом деле, по-моему, это местами даже очень напоминает хаскель…
смысл в том, что результат работы программы является как бы побочным эффектом выполнения функции, что, опять же, имхо, напоминает фп.
Понятно, что есть filter, map, reduce,… но это не вполне делает язык функциональным, поскольку это лишь следствие того, что функции являются объектами
да извиняюсь, не увидел про «некое подобие функционального программирования.», сразу бросилось в глаза название топика.

всегда думал что результат работы программы на ФП это результат, который был получен в результате вычисления какой-либо функции.

Тот же list comprehension является просто «синтаксическим сахаром» для удобной записи вычисления списков, то есть фактически это просто другая запись отображений [] -> [].

Думаю это важно, что в ФП функции — это объекты первого рода.
Думаю это важно, что в ФП функции — это объекты первого рода.


Более чем важно, во многом благодаря этому и возможно функциональное программирование в питоне.

А то что автор написал вообще не имеет ничего общего с функциональным программированием на питоне.

то что вы не видите общего, еще не означает, что его там нет… у меня другое мнение
Вот еще примерчик

f = ( [[

  (  
    p(1),
    p(2),
    p(3),
    (
      p('Qsort:'),
      p(qsort(qsort,[2,-1,7,3]))
    )
  )
  
  for qsort in [lambda qs, L:
      [] if L==[]
        else [
          qsort(qs, [e for e in T if e<=H]) + [H] + qsort(qs, [e for e in T if e>H])
            for H in [L[0]]
            for T in [L[1:]]
          ][-1],
  ]]

  for p in [lambda s='':
    w(str(s)+'\n'),
  ]]
  
  for w in [
    __import__('sys').stdout.write,
  ]
)
'''
here f is only data, that contains code!!!
'
''
def do(code):
  map(do,code) if '__iter__' in dir(code) else None
'''  
here code is evaluated  
'
''
do(f)
''' ==>
1
2
3
Qsort:
[-1, 2, 3, 7]

ain`t it looks like lisp/prolog ?
'
''


* This source code was highlighted with Source Code Highlighter.
почему это не имеет?
возник только один вопрос: зачем это все надо?
последний абзац читал? =)
упс, текст который за выводом не заметил :)
Sign up to leave a comment.

Articles