Hello, The word "combinator" is used several times in the Haskell community. e.g. parser combinator, combinator library etc. Is it exactly the same term that is used in the "combinatory logic" ? A combinator is a higher-order function that uses *only function application* and earlier defined combinators to define a result from its arguments. [1] It seems, the term combinator as in, say, "parser combinator", doesn't have much to do with the "*only function application*" requirement of the "combinatory logic", per se. If the above observation holds, is the term combinator as used in the Haskell community, properly defined? In other words: Where can I find a formal and precise definition of the term "combinator", as a term used by the Haskell community to describe "something"? Ref: http://en.wikipedia.org/wiki/Combinatory_logic Thanks and regards, -Damodar Kulkarni
On Fri, Aug 23, 2013 at 9:09 PM, damodar kulkarni <kdamodar2000@gmail.com>wrote:
Hello, The word "combinator" is used several times in the Haskell community. e.g. parser combinator, combinator library etc.
Is it exactly the same term that is used in the "combinatory logic" ? A combinator is a higher-order function that uses *only function application* and earlier defined combinators to define a result from its arguments. [1]
It seems, the term combinator as in, say, "parser combinator", doesn't have much to do with the "*only function application*" requirement of the "combinatory logic", per se.
If the above observation holds, is the term combinator as used in the Haskell community, properly defined?
In other words:
Where can I find a formal and precise definition of the term "combinator", as a term used by the Haskell community to describe "something"?
Good question. I believe this article addresses the points you raise: http://www.haskell.org/haskellwiki/Combinator
Jason Dagit <dagitj@gmail.com> writes:
Where can I find a formal and precise definition of the term "combinator",
A function that uses nothing but its arguments.
as a term used by the Haskell community to describe "something"?
I find that Haskellers often use combinator to mean "a function that makes new functions out of other functions", which it can often do as a pure combinator, but isn't always a combinator per se. -- John Wiegley FP Complete Haskell tools, training and consulting http://fpcomplete.com johnw on #haskell/irc.freenode.net
Thanks. I found the explanation given at the link quite useful in shedding the confusion I had had. Thanks and regards, -Damodar Kulkarni On Sat, Aug 24, 2013 at 10:57 AM, Jason Dagit <dagitj@gmail.com> wrote:
On Fri, Aug 23, 2013 at 9:09 PM, damodar kulkarni <kdamodar2000@gmail.com>wrote:
Hello, The word "combinator" is used several times in the Haskell community. e.g. parser combinator, combinator library etc.
Is it exactly the same term that is used in the "combinatory logic" ? A combinator is a higher-order function that uses *only function application* and earlier defined combinators to define a result from its arguments. [1]
It seems, the term combinator as in, say, "parser combinator", doesn't have much to do with the "*only function application*" requirement of the "combinatory logic", per se.
If the above observation holds, is the term combinator as used in the Haskell community, properly defined?
In other words:
Where can I find a formal and precise definition of the term "combinator", as a term used by the Haskell community to describe "something"?
Good question. I believe this article addresses the points you raise: http://www.haskell.org/haskellwiki/Combinator
I've always stuck to the definition of a closed lambda term (the Y, U, S, K, etc... combinators, for example). The colloquial usage generally implies something like "a higher order function that does something interesting (and possibly DSL-y)." Kris On Sat, Aug 24, 2013 at 12:09 AM, damodar kulkarni <kdamodar2000@gmail.com>wrote:
Hello, The word "combinator" is used several times in the Haskell community. e.g. parser combinator, combinator library etc.
Is it exactly the same term that is used in the "combinatory logic" ? A combinator is a higher-order function that uses *only function application* and earlier defined combinators to define a result from its arguments. [1]
It seems, the term combinator as in, say, "parser combinator", doesn't have much to do with the "*only function application*" requirement of the "combinatory logic", per se.
If the above observation holds, is the term combinator as used in the Haskell community, properly defined?
In other words:
Where can I find a formal and precise definition of the term "combinator", as a term used by the Haskell community to describe "something"?
Ref: http://en.wikipedia.org/wiki/Combinatory_logic
Thanks and regards, -Damodar Kulkarni
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
participants (4)
-
damodar kulkarni -
Jason Dagit -
John Wiegley -
Kristopher Micinski