how to define infix function

greatsam4sure greatsam4sure at gmail.com
Sat Jun 2 23:10:31 UTC 2018


On Saturday, 2 June 2018 at 22:01:02 UTC, Ali Çehreli wrote:
> On 06/02/2018 02:44 PM, greatsam4sure wrote:
>
> > is it possible to define infix function in D
> >
> > 3.min(5)// 3: where min is a function, works in D
> > 3 min 5 // does not work.
>
> This is called universal function call syntax (UFCS) in D. The 
> idea is simple: You can pull the first argument out as if the 
> function is a member function of that argument. So, in your 
> case it already works because there is already a min() function 
> that works with two (actually, many) parameters:
>
> import std.algorithm;
>
> void main() {
>     assert(min(3, 5) == 3);
>     assert(3.min(5) == 3);
> }
>
> However, many people don't like overusing it; it works well 
> only in cases where the first parameter is arguably the "main 
> character" in the operation. For example, min doesn't look good 
> because all parameters have equal roles in that function.
>
> Ali

Thanks for your reply to my question.
Your book: programming in D is real a great help learning D. I 
will appreciate it if your can expand the book to advance use of 
D. That is, dealing with D advance use Case. I discover that the 
D language is very advance but I am lock in the elementary yet 
don't know the way out. This is because D is the most Higher 
programming language that I ever use. Better still you can direct 
me to more materials about D. I am already familiar will all D 
books.

thanks


More information about the Digitalmars-d-learn mailing list