Başka dillerde de olan ve => işlecini kullanan kısa lambda yazımı kabul edilmiş:
https://github.com/D-Programming-Language/dmd/commit/675898721c04d0bf155a85abf986eae99c37c0dc
(Nisan bir şakası değil, yılbaşı hediyesi! :))
Aslında D'de yine de temsilci (delegate) diyoruz, lambda değil. Şuradaki örnekten anlaşıldığına göre
https://github.com/D-Programming-Language/dmd/commit/675898721c04d0bf155a85abf986eae99c37c0dc#diff-3
delegate double (double x) { return x+1.0;}
yazmak yerine kısaca
(double x) => x + 1.0
yazılabiliyor. Ama zaten 'delegate' yazılmadığında da delegate anlaşılırdı ve dönüşün türü otomatik olarak anlaşılabildiğinde dönüş türünü de double olarak yazmak gerekmezdi. Yani o örneğin uzunu aslında şuydu:
(double x) { return x+1.0;}
Yine de küme parantezlerinden, return'den ve deyimin sonunda gereken noktalı virgülden kurtulmuş oluyoruz.
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]