About: Currying

An Entity of Type: topical concept, from Named Graph: http://dbpedia.org, within Data Space: dbpedia.org

In mathematics and computer science, currying is the technique of translating the evaluation of a function that takes multiple arguments into evaluating a sequence of functions, each with a single argument. For example, currying a function that takes three arguments creates a nested unary function , so that the code gives the same value as the code or called in sequence,

Property Value
dbo:abstract
  • En tecnologies de la informació currificar és una tècnica, inventada per Schönfinkel i Gottlob Frege, i de manera independent per Haskell Curry, que consisteix a transformar una funció amb més d'un paràmetre en una composició de funcions que incorporen progressivament, d'un en un, els paràmetres de partida. Per qualsevol funció de n elements amb dominis D1 a Dn que retorna un valor en el domini Dr: f: D1 x D₂ x ... x Dn → Dr hi ha una funció currificada equivalent curry f: D1 → (D₂ → ... →(Dn →Dr)) En altres paraules, curry f: D1 → (D₂ → ... →(Dn →Dr)) pren un argument del tipus D1 i retorna una funció del tipus (D₂ → ... →(Dn →Dr)). Descurrificar és la transformació inversa. Intuïtivament, la currificació exposa que "Si configures alguns arguments, tindràs una funció dels arguments restants". Per exemple, si la funció div significa la versió currificada de l'operació x/y, llavors div amb el paràmetre x ajustat en 1 és una altra funció: igual a la funció inv que torna la inversa multiplicadora dels seus arguments, definida per inv(y) = 1/y. La motivació pràctica per currificar és que de vegades, les funcions obtingudes en utilitzar alguns, però no tots, els arguments en una funció currificada poden ser útils, per exemple, molts llenguatges tenen una funció o un operador similar a plus_one. Currificar fa fàcil definir aquestes funcions. (ca)
  • Currying (vor allem in der Linguistik auch Schönfinkeln) ist die Umwandlung einer Funktion mit mehreren Argumenten in eine Sequenz von Funktionen mit jeweils einem Argument. Obwohl das Verfahren 1924 von Moses Schönfinkel erfunden und von Gottlob Frege um 1900 vorausgedacht wurde, wird es oft nach Haskell Brooks Curry benannt, der das Verfahren 1958 umfangreich theoretisch ausgearbeitet hat. (de)
  • In mathematics and computer science, currying is the technique of translating the evaluation of a function that takes multiple arguments into evaluating a sequence of functions, each with a single argument. For example, currying a function that takes three arguments creates a nested unary function , so that the code gives the same value as the code or called in sequence, In a more mathematical language, a function that takes two arguments, one from and one from , and produces outputs in by currying is translated into a function that takes a single argument from and produces as outputs functions from to This is a natural one-to-one correspondence between these two types of functions, so that the sets together with functions between them form a Cartesian closed category. The currying of a function with more than two arguments can then be defined by induction. Currying is related to, but not the same as, partial application. Currying is useful in both practical and theoretical settings. In functional programming languages, and many others, it provides a way of automatically managing how arguments are passed to functions and exceptions. In theoretical computer science, it provides a way to study functions with multiple arguments in simpler theoretical models which provide only one argument. The most general setting for the strict notion of currying and uncurrying is in the closed monoidal categories, which underpins a vast generalization of the Curry–Howard correspondence of proofs and programs to a correspondence with many other structures, including quantum mechanics, cobordisms and string theory. It was introduced by Gottlob Frege, developed by Moses Schönfinkel,and further developed by Haskell Curry. Uncurrying is the dual transformation to currying, and can be seen as a form of defunctionalization. It takes a function whose return value is another function , and yields a new function that takes as parameters the arguments for both and , and returns, as a result, the application of and subsequently, , to those arguments. The process can be iterated. (en)
  • En informatique, plus précisément en programmation fonctionnelle, la curryfication est la transformation d'une fonction à plusieurs arguments en une fonction à un argument qui retourne une fonction sur le reste des arguments. L'opération inverse est possible et s'appelle la décurryfication. Le terme vient du nom du mathématicien américain Haskell Curry, bien que cette opération ait été introduite pour la première fois par Moses Schönfinkel. (fr)
  • En la ciencia de la computación, currificar es la técnica inventada por y Gottlob Frege que consiste en transformar una función que utiliza múltiples argumentos (o más específicamente una n-tupla como argumento) en una secuencia de funciones que utilizan un único argumento (la operación inversa a la composición de funciones en matemáticas). (es)
  • 수학과 컴퓨터 과학에서 커링(currying)이란 다중 인수 (혹은 여러 인수의 튜플)을 갖는 함수를 단일 인수를 갖는 함수들의 함수열로 바꾸는 것을 말한다. 모지즈 쇤핑클에 의해 도입되었고, 이후 해스켈 커리에 의해 발전하였다. 예를 들어, 세 개의 인수를 가지는 함수를 커링하면 다음과 같은 세 개의 함수가 만들어진다. 언커링(uncurrying)은 커링의 쌍대 변환이다. (ko)
  • カリー化 (currying, カリー化された=curried) とは、複数の引数をとる関数を、引数が「もとの関数の最初の引数」で戻り値が「もとの関数の残りの引数を取り結果を返す関数」であるような関数にすること(あるいはその関数のこと)である。クリストファー・ストレイチーにより論理学者ハスケル・カリーにちなんで名付けられたが、実際に考案したのはMoses Schönfinkelとゴットロープ・フレーゲである。 ごく簡単な例として、f(a, b) = c という関数 f があるときに、F(a) = g(ここで、g は g(b) = c となる関数である)という関数 F が、f のカリー化である。 関数 f が の形のとき、 をカリー化したものを とすると、 の形を取る。uncurryingは、これの逆の変換である。 理論計算機科学の分野では、カリー化を利用すると、複数の引数をとる関数を、一つの引数のみを取る複数の関数のラムダ計算などの単純な理論的モデルと見なして研究できるようになる。圏論ではカリー化の概念を、デカルト閉圏における冪対象の普遍性に見出せる。適当な2つの対象の積から別の対象への射 に対して、射 が一意に対応する。 カリー化をする現実の動機の1つに、カリー化することで後述するが行いやすくなることが挙げられる。たとえば、加算を行う関数 (+) をカリー化してから、最初の引数だけに 1 を適用すれば、インクリメント用の関数が簡単に作れる。 カリー化を基盤としているプログラミング言語もある。特にMLとHaskellでは関数は常に一つの引数のみを取り、複数の引数を取る関数とは、単にネストされた複数の一引数関数の糖衣構文にすぎない。第一級関数を扱える言語、たとえばLISP、Scheme、F#、Scala、Erlang、Eiffel、Perl、Ruby、Python、R言語、S言語、JavaScript、Swiftなどでは、カリー化関数を作ることができる。 (ja)
  • In matematica e informatica si definisce applicazione parziale di una funzione l'applicazione di una funzione a una parte dei suoi argomenti. A rigore questa operazione dovrebbe essere "proibita", in quanto una funzione per essere definita deve essere applicata a tutti i suoi argomenti. In realtà ci sono diversi linguaggi di programmazione che consentono di farlo, restituendo un risultato utilizzabile, e anche nell'ambito della matematica è possibile dare un senso a un'espressione in cui una funzione sia applicata a una parte dei suoi argomenti. (it)
  • Rozwijanie funkcji (ang. currying) – operacja w funkcyjnych językach programowania polegająca na przekształceniu funkcji, która pobiera parę argumentów i zwraca wynik w funkcję, która po pobraniu argumentu zwraca funkcję, która pobiera argument i zwraca wynik . Operacja odwrotna nosi nazwę zwijanie funkcji (ang. uncurrying). Podstawą dla tej operacji jest ugruntowanie systemu typów w językach funkcyjnych na rachunku lambda z typami. Taki rachunek na mocy izomorfizmu Curry’ego-Howarda jest równoważny pewnej logice intuicjonistycznej, a zatem operacja ta odpowiada tautologii logiki intuicjonistycznej: Oryginalna nazwa została zaproponowana przez w 1967 roku, jako nawiązanie do nazwiska logika Haskella Curry’ego. (pl)
  • Em ciência da computação, currying é uma técnica de transformação de uma função que recebe múltiplos parâmetros (mais especificamente, uma n-tupla como parâmetro) de forma que ela pode ser chamada como uma cadeia de funções que recebem somente um parâmetro cada. Foi inventada por Moses Schönfinkel e Gottlob Frege, e independentemente por Haskell Curry. Cunhado por em 1967, o nome é uma referência ao matemático Haskell Curry. (pt)
  • Каррирование (от англ. currying, иногда — карринг) — преобразование функции от многих аргументов в набор функций, каждая из которых является функцией от одного аргумента. Возможность такого преобразования впервые отмечена в трудах Готтлоба Фреге, систематически изучена Моисеем Шейнфинкелем в 1920-е годы, а наименование получило по имени Хаскелла Карри — разработчика комбинаторной логики, в которой сведение к функциям одного аргумента носит основополагающий характер. (ru)
  • 在计算机科学中,柯里化(英語:Currying),又译为卡瑞化或加里化,是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。这个技术由克里斯托弗·斯特雷奇以逻辑学家哈斯凱爾·加里命名的,尽管它是和戈特洛布·弗雷格发明的。 在直觉上,柯里化声称「如果你固定某些参数,你将得到接受余下参数的一个函数」。所以对于有两个变量的函数,如果固定了,则得到有一个变量的函数。 在理论计算机科学中,柯里化提供了在简单的理论模型中,比如:只接受一个单一参数的lambda演算中,研究带有多个参数的函数的方式。 函数柯里化的对偶是Uncurrying,一种使用匿名单参数函数来实现多参数函数的方法。例如: var foo = function(a) { return function(b) { return a * a + b * b; }} 这样调用上述函数:(foo(3))(4),或直接foo(3)(4)。 (zh)
  • Каррування або каррінг (англ. currying) в інформатиці — метод обчислення функції від багатьох аргументів, перетворенням її в послідовність функцій одного аргумента.Це перетворення було введено Мойсеєм Шейнфінкелем і отримало свою назву від свого поширювача, Гаскеля Каррі. Операція каррування є функцією вищого порядку, оскільки, вона приймає і повертає функцію. Карровані функції можуть використовуватись у всіх мовах програмування, що підтримують замикання. Хоча не карровані функції обчислюються швидше, оскільки не потребують часткового застосування та створення замикання. (uk)
dbo:wikiPageExternalLink
dbo:wikiPageID
  • 6600 (xsd:integer)
dbo:wikiPageLength
  • 31573 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID
  • 1121916119 (xsd:integer)
dbo:wikiPageWikiLink
dbp:wikiPageUsesTemplate
dcterms:subject
gold:hypernym
rdf:type
rdfs:comment
  • Currying (vor allem in der Linguistik auch Schönfinkeln) ist die Umwandlung einer Funktion mit mehreren Argumenten in eine Sequenz von Funktionen mit jeweils einem Argument. Obwohl das Verfahren 1924 von Moses Schönfinkel erfunden und von Gottlob Frege um 1900 vorausgedacht wurde, wird es oft nach Haskell Brooks Curry benannt, der das Verfahren 1958 umfangreich theoretisch ausgearbeitet hat. (de)
  • En informatique, plus précisément en programmation fonctionnelle, la curryfication est la transformation d'une fonction à plusieurs arguments en une fonction à un argument qui retourne une fonction sur le reste des arguments. L'opération inverse est possible et s'appelle la décurryfication. Le terme vient du nom du mathématicien américain Haskell Curry, bien que cette opération ait été introduite pour la première fois par Moses Schönfinkel. (fr)
  • En la ciencia de la computación, currificar es la técnica inventada por y Gottlob Frege que consiste en transformar una función que utiliza múltiples argumentos (o más específicamente una n-tupla como argumento) en una secuencia de funciones que utilizan un único argumento (la operación inversa a la composición de funciones en matemáticas). (es)
  • 수학과 컴퓨터 과학에서 커링(currying)이란 다중 인수 (혹은 여러 인수의 튜플)을 갖는 함수를 단일 인수를 갖는 함수들의 함수열로 바꾸는 것을 말한다. 모지즈 쇤핑클에 의해 도입되었고, 이후 해스켈 커리에 의해 발전하였다. 예를 들어, 세 개의 인수를 가지는 함수를 커링하면 다음과 같은 세 개의 함수가 만들어진다. 언커링(uncurrying)은 커링의 쌍대 변환이다. (ko)
  • In matematica e informatica si definisce applicazione parziale di una funzione l'applicazione di una funzione a una parte dei suoi argomenti. A rigore questa operazione dovrebbe essere "proibita", in quanto una funzione per essere definita deve essere applicata a tutti i suoi argomenti. In realtà ci sono diversi linguaggi di programmazione che consentono di farlo, restituendo un risultato utilizzabile, e anche nell'ambito della matematica è possibile dare un senso a un'espressione in cui una funzione sia applicata a una parte dei suoi argomenti. (it)
  • Em ciência da computação, currying é uma técnica de transformação de uma função que recebe múltiplos parâmetros (mais especificamente, uma n-tupla como parâmetro) de forma que ela pode ser chamada como uma cadeia de funções que recebem somente um parâmetro cada. Foi inventada por Moses Schönfinkel e Gottlob Frege, e independentemente por Haskell Curry. Cunhado por em 1967, o nome é uma referência ao matemático Haskell Curry. (pt)
  • Каррирование (от англ. currying, иногда — карринг) — преобразование функции от многих аргументов в набор функций, каждая из которых является функцией от одного аргумента. Возможность такого преобразования впервые отмечена в трудах Готтлоба Фреге, систематически изучена Моисеем Шейнфинкелем в 1920-е годы, а наименование получило по имени Хаскелла Карри — разработчика комбинаторной логики, в которой сведение к функциям одного аргумента носит основополагающий характер. (ru)
  • 在计算机科学中,柯里化(英語:Currying),又译为卡瑞化或加里化,是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。这个技术由克里斯托弗·斯特雷奇以逻辑学家哈斯凱爾·加里命名的,尽管它是和戈特洛布·弗雷格发明的。 在直觉上,柯里化声称「如果你固定某些参数,你将得到接受余下参数的一个函数」。所以对于有两个变量的函数,如果固定了,则得到有一个变量的函数。 在理论计算机科学中,柯里化提供了在简单的理论模型中,比如:只接受一个单一参数的lambda演算中,研究带有多个参数的函数的方式。 函数柯里化的对偶是Uncurrying,一种使用匿名单参数函数来实现多参数函数的方法。例如: var foo = function(a) { return function(b) { return a * a + b * b; }} 这样调用上述函数:(foo(3))(4),或直接foo(3)(4)。 (zh)
  • Каррування або каррінг (англ. currying) в інформатиці — метод обчислення функції від багатьох аргументів, перетворенням її в послідовність функцій одного аргумента.Це перетворення було введено Мойсеєм Шейнфінкелем і отримало свою назву від свого поширювача, Гаскеля Каррі. Операція каррування є функцією вищого порядку, оскільки, вона приймає і повертає функцію. Карровані функції можуть використовуватись у всіх мовах програмування, що підтримують замикання. Хоча не карровані функції обчислюються швидше, оскільки не потребують часткового застосування та створення замикання. (uk)
  • En tecnologies de la informació currificar és una tècnica, inventada per Schönfinkel i Gottlob Frege, i de manera independent per Haskell Curry, que consisteix a transformar una funció amb més d'un paràmetre en una composició de funcions que incorporen progressivament, d'un en un, els paràmetres de partida. Per qualsevol funció de n elements amb dominis D1 a Dn que retorna un valor en el domini Dr: f: D1 x D₂ x ... x Dn → Dr hi ha una funció currificada equivalent curry f: D1 → (D₂ → ... →(Dn →Dr)) (ca)
  • In mathematics and computer science, currying is the technique of translating the evaluation of a function that takes multiple arguments into evaluating a sequence of functions, each with a single argument. For example, currying a function that takes three arguments creates a nested unary function , so that the code gives the same value as the code or called in sequence, (en)
  • カリー化 (currying, カリー化された=curried) とは、複数の引数をとる関数を、引数が「もとの関数の最初の引数」で戻り値が「もとの関数の残りの引数を取り結果を返す関数」であるような関数にすること(あるいはその関数のこと)である。クリストファー・ストレイチーにより論理学者ハスケル・カリーにちなんで名付けられたが、実際に考案したのはMoses Schönfinkelとゴットロープ・フレーゲである。 ごく簡単な例として、f(a, b) = c という関数 f があるときに、F(a) = g(ここで、g は g(b) = c となる関数である)という関数 F が、f のカリー化である。 関数 f が の形のとき、 をカリー化したものを とすると、 の形を取る。uncurryingは、これの逆の変換である。 理論計算機科学の分野では、カリー化を利用すると、複数の引数をとる関数を、一つの引数のみを取る複数の関数のラムダ計算などの単純な理論的モデルと見なして研究できるようになる。圏論ではカリー化の概念を、デカルト閉圏における冪対象の普遍性に見出せる。適当な2つの対象の積から別の対象への射 に対して、射 が一意に対応する。 (ja)
  • Rozwijanie funkcji (ang. currying) – operacja w funkcyjnych językach programowania polegająca na przekształceniu funkcji, która pobiera parę argumentów i zwraca wynik w funkcję, która po pobraniu argumentu zwraca funkcję, która pobiera argument i zwraca wynik . Operacja odwrotna nosi nazwę zwijanie funkcji (ang. uncurrying). Oryginalna nazwa została zaproponowana przez w 1967 roku, jako nawiązanie do nazwiska logika Haskella Curry’ego. (pl)
rdfs:label
  • Currificació (ca)
  • Currying (de)
  • Currying (en)
  • Currificación (es)
  • Curryfication (fr)
  • Applicazione parziale (it)
  • 커링 (ko)
  • カリー化 (ja)
  • Currying (pl)
  • Currying (pt)
  • Каррирование (ru)
  • 柯里化 (zh)
  • Каррінг (інформатика) (uk)
owl:sameAs
prov:wasDerivedFrom
foaf:isPrimaryTopicOf
is dbo:knownFor of
is dbo:notableIdea of
is dbo:wikiPageDisambiguates of
is dbo:wikiPageRedirects of
is dbo:wikiPageWikiLink of
is dbp:knownFor of
is dbp:notableIdeas of
is foaf:primaryTopic of
Powered by OpenLink Virtuoso    This material is Open Knowledge     W3C Semantic Web Technology     This material is Open Knowledge    Valid XHTML + RDFa
This content was extracted from Wikipedia and is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License