Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
f.func_code.co_argcount
class A(object):
def m(self, a, b, c):
passpartial(A.m, a)method.im_self is None','.join(map(str | int, [4.5, 6.7, 8.02]))
def push_through(*funcs):
def inner(value):
return reduce(lambda x, f: f(x), funcs, value)
return inner
print ','.join(map(push_through(int, str), [4.5, 6.7, 8.02]))
Combinable(int) | strstr | Combinable(int)str | int | Combinable()а фундамент находится в теории категорий, которую сходу на пальцах не объяснишь
Если уж монады в Scala искать, так лучше обратить внимание на for/yield — вполне себе, монада списка сдобренная нужным кол-вом синтаксического сахара.
class Book(title: String, authors: List[String])
// наименования книг, написанных Кнутом
for (b <- books; a <- b.authors if a startsWith "Knuth,") yield b.title
// авторы, написавшие более чем одну книгу
{ for {
b1 <- books
b2 <- books
if b1 != b2
a1 <- b1.authors
a2 <- b2.authors
if a1 == a2
} yield a1
}.distinct
Для тех, кто хочет странного: монады в Python