Talk:Function composition (computer science)

Hi. I am new to Wikipedia, and this was the first article that I had authored. It was previously included in the composition (computer science) article but was split off into its own page.

It bears the message that it needs fact checking. Most of my questions were answered by following the link titled Cite your references, so I will do so, making sure no "original research" is introduced, but:

Could anyone finding doubtful material put some mark (an asterisk perhaps) beside the doubtful claim so that I can substantiate/remove the claim?

Thanks, Vonkje 03:36, 23 May 2005 (UTC)

proposed deletion of Composition_%28computer_science%29
I think you might have author the Composition_%28computer_science%29 page, and just wanted you to know that I have proposed it for deletion. I changed the previous links to it either to point to Object_composition or Function_composition_%28computer_science%29. Since these terms are very different, I didn't think they need a disambiguation page. I appreciate your contributions. I've explained why I want to delete it in the deletion notice (see also Wikipedia:What Wikipedia is not and Wikipedia:Notability). Please either work to improve the article if the topic is worthy of inclusion in Wikipedia, or, if you disagree, discuss the issues in the article's Talk page. If you remove the deletion request, the article will not be deleted, but note that it may still be sent to Wikipedia:Articles for deletion, where it may be deleted if consensus to delete is reached.

Question for clarification
Am I missing something? In the line:

using the composition operator (.) :: (b -> c) -> (a -> b) -> a -> c, which can be read as f after g or g composed with f.

What does "(b -> c) -> (a -> b) -> a -> c" have to do with "f after g or g composed with f"? I suspect this was borrowed from another source and incompletely edited to fit this context. At any rate, it doesn't make sense to me.
 * I really don't know myself. Someone more familiar with Haskell contributed this so I'm sorry I couldn't help. Vonkje 01:59, 21 July 2007 (UTC)
 * Clarified. OK now?  Cbensf (talk) 17:52, 14 June 2009 (UTC)

Deleted unclear text
As part of a thorough edit, I remove the following text because it appears bogus:


 * The longer first implementation is known as the "single-assignment" form of function composition. This form is useful in the areas of parallel programming and  embedding logic onto field programmable gate array devices (see Hammes, et al.).  The shorter second example is known as "sequential composition" (Abadi and Lamport pg 96), since the result of the second function depends on the result of the first.  Another type of functional composition known as "parallel composition" (Pierce and Turner pg 2) (Abadi and Lamport pg 96), enables a developer to compose two or more functions so that each runs in parallel on its own separate computer.

Both short and "highly composed" forms are equivallent, both are sequential in that f depends on the result of g!?!

"parallel composition" might be interesting, but I found no clear definition in either paper, only a mention in passage in the Abadi & Lamport paper.


 * * Jeffrey Hammes, Bruce Draper, and Willem Böhm, "Sassy: A Language and Optimizing Compiler for Image Processing on Reconfigurable Computing Systems", Proceedings of the International Conference on Vision Systems, Las Palmas de Gran Canaria, Spain, Jan 11-13, 1999.

"Single assignement" refers to languages where each variable is assigned only once, which removes side effects and exposes parallelism. I couldn't find any relation between the paper and function composition. It's not relevant to apply this term to the long "y = g(x); z = f(y)" form.

Feel free to restore any of this into the arcticle, if you can express it clearly. Cbensf (talk) 20:07, 14 June 2009 (UTC)

First-class composition split
Of the 8 languages currently with items in First-class composition, only 4 (Haskell, APL, Raku, and Ruby) appear to support first class composition based on the examples. Can the others be split out to a section for defining them manually (or removed)? 134.228.217.16 (talk) 15:43, 17 September 2022 (UTC)