#D2048 The 2048 written in D.
##How to use
- Place file as follow:
d2048Root/
|-source/
import std.algorithm, | |
std.string, | |
std.array, | |
std.stdio, | |
std.conv; | |
import core.memory; | |
/* | |
Useing raw pointer and manually memory manegement for perfourmance. | |
D's dynamic array is very useful but a litle slower but safe. |
import std.stdio; | |
void immutableTest() { | |
immutable int N = 10;//変更不可能 | |
immutable int* ptr = &N;//変更不可能なポインタ | |
//ptr = &N;当然不可能 | |
// このコードは動かない | |
// immutableなポインタはimmutableな変数しかとれない |
import std.algorithm, | |
std.random, | |
std.range, | |
std.stdio; | |
R delegate(Args) Z(R, Args...)(R delegate(R delegate(Args), Args) f){ | |
return (Args args) => f(Z(f), args); | |
} | |
void main() { |
import std.algorithm, | |
std.random, | |
std.range, | |
std.stdio; | |
R delegate(Args) Z(R, Args...)(R delegate(R delegate(Args), Args) f){ | |
return (Args args) => f(Z(f), args); | |
} | |
void main() { |
import std.stdio; | |
template FOR(alias func, alias cond) { | |
import std.algorithm, | |
std.traits, | |
std.range, | |
std.conv; | |
void FOR() { | |
immutable lambdaStr = (lamArgs => |
import std.stdio, | |
std.typetuple; | |
alias TypeTuple!( | |
byte, ubyte, short, | |
ushort, int, uint, long, | |
ulong, float, double, real) primitiveTypes; | |
Caluculatable!T newCaluculatable(T)(T v){ | |
return Caluculatable!T(v); |
// ifExpression for D language | |
template IF(alias condition){ | |
import std.traits; | |
//IF!(condition) -> Return : bool | |
auto IF(){ | |
return condition; | |
} | |
auto IF(T, F)(T trueExpression, F falseExpression){ |
#D2048 The 2048 written in D.
##How to use
d2048Root/
|-source/
import std.net.curl, | |
std.algorithm.iteration, | |
std.string, | |
std.base64, | |
std.json, | |
std.conv; | |
import std.stdio; | |
class TaiwaService{ |
class Test1{ | |
varStr: string; | |
constructor(){ | |
this.varStr = "ABC"; | |
} | |
} | |
class Test2{ | |
private t1: Test1; | |