Skip to content

Instantly share code, notes, and snippets.

@schveiguy
schveiguy / struct_with_properties.swift
Last active February 22, 2016 02:54
Code for swift/d comparison
struct S
{
var x : Int // uses hidden storage
var xTimes10 : Int {
get {
return x * 10
}
set {
x = newValue / 10
}
@schveiguy
schveiguy / local_ref.d
Last active February 22, 2016 03:37
D inout article
struct LocalRef(T)
{
private T* _ref;
this(ref T t) { _ref = &t; }
ref T get() pure { return *_ref; }
}
void main()
{
int x;
@schveiguy
schveiguy / ex1_a.d
Last active August 29, 2016 14:06
2.071.0 import article
module ex1_a;
void foo() {}
@schveiguy
schveiguy / eponymous.d
Last active May 27, 2017 01:04
Voldemort types article
module eponymous;
template inputChain(R1, R2)
if(isInputRange!R1 && isInputRange!R2 &&
is(ElementType!R1 == ElementType!R2))
{
auto inputChain(R1 r1, R2 r2)
{
...
}
@schveiguy
schveiguy / test.html
Created May 26, 2017 12:11
Simple web page with one table
<html>
<body>
before
<table>
<tr>
<td>table</td><td>data</td>
</tr>
</table>
after
</body>
@schveiguy
schveiguy / gblevelup.d
Last active September 5, 2019 00:48
Golf Blitz level checker
import std.algorithm;
import std.range;
import std.string;
import std.array;
import std.conv;
// |level|common|rare|epic|bux|xp|xptonextlevel|
enum xpData =
`|1|1|1|1|5|4|8|
|2|2|1|1|6|5|10|
@schveiguy
schveiguy / raindrops.d
Created September 4, 2019 20:14
Raindrops demo code.
import std.algorithm;
void main(string[] args)
{
import std.stdio;
// args[0] is the program name, args[1] through args[n] are the input strings.
// first validate the input
auto input = args[1 .. $];
foreach(i; 1 .. input.length)
{
@schveiguy
schveiguy / app.d
Last active January 14, 2020 17:12
Sample graphql program that fails
import std.stdio;
import vibe.d;
import graphql.parser;
import graphql.builder;
import graphql.lexer;
import graphql.ast;
import graphql.helper;
import graphql.schema;
import graphql.traits;
@schveiguy
schveiguy / get_recursive.d
Created February 21, 2020 17:49
Another recursive range possibility, using simple linked-list stack.
import std.range;
struct StackFrame(T)
{
StackFrame* prev;
T range;
}
struct StackRange(T, alias recurse) if (isInputRange!(typeof(recurse(T.init))))
{
@schveiguy
schveiguy / wishitwouldwork.d
Created May 22, 2020 17:17
dotdotdot test case
template NewFilter(alias pred, T...)
{
import std.meta : AliasSeq;
static if(T.length == 1)
{
static if(pred!T)
alias NewFilter = AliasSeq!(T);
else
alias NewFilter = AliasSeq!();
}