Hello everyone,

I just started using D and I am a bit puzzled by the syntax of the sort function is std.algorithm.sorting, which is

sort!(comparingFunction)(list)

where comparingFunction is often a lambda expression. For instance in the Wolfram Language the equivalent function is

Sort[list,comparingFunction]

My questions are:

1) Why is D making using of the binary ! operator, which as far as I understand introduces a template?

2) Why is a template needed here?

3) It seems to me like the argument passed to the template is a lambda expression. I only know about templates taking types as argument. What's going on?

Many thanks!

Reply via email to