Bu buluşmada yazdığım kodlar şunlardı:
import std.stdio;
T topla(T)(T a, T b)
if (__traits(isArithmetic, T))
{
return a + b;
}
void main() {
writeln(topla(2, 3));
writeln(topla(2.5, 3.5));
writeln(topla("merhaba", "world"));
}
import std.algorithm;
import std.range;
void main() {
pragma(msg, typeof("ba"));
pragma(msg, typeof(chain(['a', 'b'], only('c'))));
assert(endsWith("merhaba", "ba", chain(['a', 'b'], only('c'))));
}
import std.stdio;
void main() {
writeln("merhaba \\nurten");
writeln(`merhaba \nurten`);
writeln(q"EOS
iste burasi
aosuethsoa
aostuhs sntohus snaothu
EOS");
writeln(q"EOS
struct {
int i;
}
EOS");
writeln(q{
struct {
int i;
}
void foo() {
}
});
}
import std.stdio;
import std.format;
import std.array;
string makeStruct(Args...)(string name) {
auto result = appender!string;
result ~= format!"struct %s {\n"(name);
static foreach (i, arg; Args) {
static if ((i % 2) != 0) {
static assert(is (Args[i-1]), format!"Lutfen %s yerine bir tur veriniz"(Args[i-1].stringof));
result ~= format!" %s %s; // parametre %s\n"(Args[i-1].stringof, Args[i], i);
}
}
result ~= "}\n";
return result.data;
}
void main() {
writeln(makeStruct!(int, "birinci",
double, "ikinci",
float, "ucuncu")("foo"));
writeln(makeStruct("bar"));
}
import std.stdio;
bool karsilastir(alias islem, T)(T a, T b) {
return islem(a, b);
}
bool f(int a, int b) {
return a < b;
}
void main() {
writeln(karsilastir!(f)(3, 4));
}
import std;
struct Kareler(T = int) {
T i = 0;
enum empty = false;
int front() {
return i * i;
}
void popFront() {
++i;
}
}
auto kareler(T = int)() {
return Kareler!T();
}
void main() {
auto r = kareler.take(10);
while (!r.empty) {
writeln(r.front);
r.popFront();
}
}
struct Karesi(R) {
R range;
bool empty() {
return range.empty;
}
auto front() {
return range.front * range.front;
}
void popFront() {
range.popFront();
}
}
auto karesi(R)(R range) {
return Karesi!R(range);
}
import std;
void main() {
auto dizi = [ 10, 20, 30 ];
writeln(dizi.karesi);
writeln(iota(0, 17, 3).karesi.take(2));
}
import std;
auto yarisi(T)(T deger) {
return deger / 2;
}
auto ucKati(T)(T deger) {
return deger * 3;
}
void main() {
auto y = yarisi(42);
writeln(ucKati(y));
writeln(42.yarisi.ucKati);
}
import std;
struct Araba {
int benzin;
auto kalan() {
return benzin;
}
}
bool gidebilir_mi(Araba araba, size_t mesafe) {
return araba.benzin > 10;
}
unittest {
auto a = Araba(20);
assert(a.gidebilir_mi(42));
}
void main() {
auto a = Araba(20);
writeln(a.kalan);
writeln(a.gidebilir_mi(42));
}
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]