Обсуждение:Каррирование

Последнее сообщение: 12 лет назад от Обедающий философ в теме «Примеры»

Переименование править

Предлагаю переименовать в Карринг, так как этот вариант ближе к оригиналу en:Curring. Каррирование — это уже какие-то языковые выверты. Карри, наверно, в гробу крутиться от таких экспериментов. Хацкер 14:42, 3 апреля 2008 (UTC)Ответить

  За, действительно более популярное название, используется разве что только товарищем Душкиным :-) --Claymore 15:01, 3 апреля 2008 (UTC)Ответить

Пример править

неплохо бы пример --92.124.122.138 15:32, 29 ноября 2008 (UTC)denОтветить

пример чего? Хацкер 16:23, 29 ноября 2008 (UTC)Ответить
Пример каррирования какой-нибудь функции, конечно. --79.143.3.106 16:21, 29 ноября 2009 (UTC)Ответить

Примеры править

В статье плохие примеры - там жёстко берётся функция + и подставляется один аргумент. Хорошо бы их заменить на каррирование произвольной функции. Могу предложить пример на scheme:

(define (curry f a) (lambda (b) (apply f (append a b))))

(define plus1 (curry + '(1)))

(plus1 '(3)) ; выведет 4

Пример на питоне из Замыкание_(программирование):

curry = lambda func_object, *args: (
    lambda *local_args: (
        func_object(
            *(args + local_args)
        )
    )
)
Обедающий философ 12:00, 27 января 2012 (UTC)Ответить