Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Более того, в D возможно то, чего мы все так хотим в Python (извиняюсь, если это на самом деле можно, но я точно знаю, что в lambda — нельзя, сам пробовал):
Кто не понял — речь о замыканиях :)
import std.stdio;
class A
{
this() {writeln("A");}
~this() {writeln("~A");}
}
class B : A
{
this() {writeln("B");}
~this() {writeln("~B");}
}
void main()
{
B b = new B;
clear(b);
}
import std.stdio;
class A
{
string s;
this() { s = ""; }
this(string s) { this.s = s; }
}
class B : A
{
override string toString() { return "trollface"; }
}
void main()
{
B a = new B("hi!");
}
int incTwice(int a)
{
auto inc = []( int i ) { return i+1; };
return inc(inc(a));
}
#include <functional>
void testLambdas(int c)
{
auto f = []( int a ) { return a+1; };
std::function<int(int)> f2 = []( int a ) { return a+1; };
auto inc = [c] (int a) { return a+c; };
}
int[string] function(int[string]) getFun()
{
return (int[string] a) {return a ~= ["hi" : 1];};
}
>в этом месте программисты на паскале торжествуют
Язык программирования D