Experiment with this gist in Gistlyn.
Let's start with the big guns: Discriminated Union in C#.
private DictionarySlim<TypeVal, string> _dict; | |
public DictionarySlim<TypeVal, string> DictSlim() | |
{ | |
var dict = new DictionarySlim<TypeVal, string>(); | |
foreach (var key in _keys.Take(Count)) | |
dict.GetOrAddValueRef(key) = "a"; | |
dict.GetOrAddValueRef(typeof(ImHashMapBenchmarks)) = "!"; |
module EnvDemo | |
open System | |
open System.IO | |
[<Struct>] | |
type Nothing = | |
private | |
| Nothing |
using System; | |
class Program | |
{ | |
// M wants to get an instance via Func | |
static void M(Func<string> factory) | |
{ | |
Console.WriteLine(factory()); | |
} |
// | Method | Mean | Error | StdDev | | |
// |------------- |----------:|----------:|----------:| | |
// | Calli | 0.6718 ns | 0.0013 ns | 0.0012 ns | | |
// | Delegate | 1.1366 ns | 0.0099 ns | 0.0088 ns | | |
// | FastDelegate | 1.6239 ns | 0.0103 ns | 0.0097 ns | | |
// MyClassLib.cs is compiled in another project (havent tested if compiling with Fody is working with BenchmarkDotnet in the same project) | |
// This file is referencing BenchDelegates.MyClassLib | |
using System; |
/* | |
https://dba.stackexchange.com/questions/96534/postgres-check-disk-space-taken-by-materialized-view?newreg=6b1d58604fce4a1fbe3033ddbb52d7ca | |
relkind: | |
r = ordinary table, | |
i = index, | |
S = sequence, | |
v = view, | |
m = materialized view, | |
c = composite type, |
Experiment with this gist in Gistlyn.
Let's start with the big guns: Discriminated Union in C#.
using System; | |
public class Test | |
{ | |
public static void Main() | |
{ | |
var x = ImZipper<int>.Empty.Pre(1).Pre(2); | |
Console.WriteLine(x); | |
Console.WriteLine(x.Focus); | |
} |
using System; | |
using System.Collections.Generic; | |
using static System.Console; | |
namespace Union | |
{ | |
class Program | |
{ | |
public static void Main() | |
{ |
/* | |
Inspired by: https://medium.com/@gcanti/introduction-to-optics-lenses-and-prisms-3230e73bfcfe | |
*/ | |
using System; | |
using static System.Console; | |
public static class Program | |
{ | |
public static void Main() |
/* | |
StackPool is faster by far >10 times than ScanPool. | |
Other features: | |
- Does not consume memory from the start - it grows only when you Return object to it. | |
- Forgiving for no Return scenarios, that means when you not returning - memory is not consumed. So it is similar to `new` | |
- May be put a limit on depth, NOT tested yet. | |
*/ |