Uniform Function Call Syntax

Uniform Function Call Syntax (UFCS) or Uniform Calling Syntax (UCS) or sometimes Universal Function Call Syntax is a programming language feature in D and Nim that allows any function to be called using the syntax for method calls (as in object-oriented programming), by using the as the first parameter, and the given arguments as the remaining parameters. UFCS is particularly useful when function calls are chained (behaving similar to pipes, or the various dedicated operators available in functional languages for passing values through a series of expressions). It allows free-functions to fill a role similar to extension methods in some other languages. Another benefit of the method call syntax is use with "" in IDEs, which use type information to show a list of available functions, depen

Comment
enUniform Function Call Syntax (UFCS) or Uniform Calling Syntax (UCS) or sometimes Universal Function Call Syntax is a programming language feature in D and Nim that allows any function to be called using the syntax for method calls (as in object-oriented programming), by using the as the first parameter, and the given arguments as the remaining parameters. UFCS is particularly useful when function calls are chained (behaving similar to pipes, or the various dedicated operators available in functional languages for passing values through a series of expressions). It allows free-functions to fill a role similar to extension methods in some other languages. Another benefit of the method call syntax is use with "" in IDEs, which use type information to show a list of available functions, depen
Has abstract
enUniform Function Call Syntax (UFCS) or Uniform Calling Syntax (UCS) or sometimes Universal Function Call Syntax is a programming language feature in D and Nim that allows any function to be called using the syntax for method calls (as in object-oriented programming), by using the as the first parameter, and the given arguments as the remaining parameters. UFCS is particularly useful when function calls are chained (behaving similar to pipes, or the various dedicated operators available in functional languages for passing values through a series of expressions). It allows free-functions to fill a role similar to extension methods in some other languages. Another benefit of the method call syntax is use with "" in IDEs, which use type information to show a list of available functions, dependent on the context. When the programmer starts with an argument, the set of potentially applicable functions is greatly narrowed down, aiding discoverability.
Hypernym
Feature
Is primary topic of
Uniform Function Call Syntax
Label
enUniform Function Call Syntax
Link from a Wikipage to an external page
github.com/rust-lang/rfcs/issues/1140%23issuecomment-108644620
doc.rust-lang.org/1.30.0/book/2018-edition/ch19-03-advanced-traits.html%3Fhighlight=trait,function,call%23fully-qualified-syntax-for-disambiguation-calling-methods-with-the-same-name
Link from a Wikipage to another Wikipage
Bjarne Stroustrup
Category:Articles with example code
Category:Object-oriented programming
Category:Source code
Category:Subroutines
Class (computer programming)
Coupling (computer programming)
D (programming language)
Discoverability
Dot-autocomplete
Duck typing
Expression (computer science)
Extension method
Free function (c++)
Function (computer programming)
Functional language
Generic programming
Go (programming language)
Herb Sutter
Integrated development environment
Interface (computer programming)
Loose coupling
Member function
Method chaining
Nim (programming language)
Object-oriented programming
Operator (computer programming)
Pipe (computer science)
Programming language
Receiver (object oriented programming)
Trait (computer programming)
SameAs
m.0123kkn6
mctc
Q18356467
Uniform Function Call Syntax
Uniform Function Call Syntax
Subject
Category:Articles with example code
Category:Object-oriented programming
Category:Source code
Category:Subroutines
WasDerivedFrom
Uniform Function Call Syntax?oldid=1087022407&ns=0
WikiPageLength
5600
Wikipage page ID
44101540
Wikipage revision ID
1087022407
WikiPageUsesTemplate
Template:Primary sources
Template:Reflist