Skip to content

Instantly share code, notes, and snippets.

View ulve's full-sized avatar

Olov Johansson ulve

  • Future Ordering
  • Umeå
View GitHub Profile
@ulve
ulve / parser combinator.ts
Created April 28, 2018 14:34
Nyare parser combinator som är mer generisk
// Okej det är ju inte så kul att alltid få ut listor av bokstäver. Hur vore det om man
// kunde göra om dom till något annat? Typ en sträng? eller vad som helst
// Först kan vi behöva en typ som inte är string. vi gör en generisk success
// Okej nu behöver vi lite typer
interface Success<T> {
kind: "success";
val: [T, string];
}
@ulve
ulve / Difference types.ts
Created April 26, 2018 14:03
Keys of types that differ from a base type
interface IBase {
nånProp: string;
}
interface IFirst extends IBase {
fulProp: string;
}
interface ISecond extends IBase {
FulProp: string;
@ulve
ulve / sara.cs
Created April 11, 2018 15:55
parsercombinator på jobbet
public static OrignalAdress ParseLine(string str)
{
var separator = Parse.String(",");
var quote = Parse.Char('\'');
var parsaNull = Parse.String("null").Return("null");
var parsaVärde = from open in quote
from content in Parse.AnyChar.Except(quote).Many()
from close in quote
@ulve
ulve / bättre interface.ts
Last active April 12, 2018 18:33
En enkel parser combinator för typescript
// Okej nu behöver vi lite typer
interface Success<T> {
kind: "success";
val: [T[], string];
}
interface Failure {
kind: "failure";
message: string;
}
@ulve
ulve / Combinator.cs
Last active April 4, 2018 13:17
Simple parser combinator
using System;
using System.Collections.Generic;
using System.Linq;
namespace ParserCombinator
{
public class Result<T, U>
{
public U Value { get; private set; }
public enum Målstatus
{
Nytt,
Diariefört,
Gallrat,
Avlutat
}
public interface IMål
{
def get_request id do
:timer.sleep(:rand.uniform(10000))
IO.puts "#{id} klar"
end
def run_normal do
Enum.map(1..10_000, &get_request(&1))
end
def run_async do
@ulve
ulve / Hopac api gateway.fsx
Created March 13, 2018 14:14
Using hopac as a api gateway in f#
#r "packages/Hopac/lib/net45/Hopac.dll"
#r "packages/Hopac/lib/net45/Hopac.Core.dll"
#r "packages/Hopac/lib/net45/Hopac.Platform.dll"
#r "packages/FSharp.Data/lib/net45/FSharp.Data.dll"
#r "packages/Http.fs/lib/net461/HttpFs.dll"
#r "packages/System.Net.Http/lib/net46/System.Net.Http.dll"
open Hopac
open Hopac.Infixes
open FSharp.Data
@ulve
ulve / hopactest.fsx
Created March 9, 2018 12:44
Hopactest
#r "packages/Hopac/lib/net45/Hopac.Core.dll"
#r "packages/Hopac/lib/net45/Hopac.Platform.dll"
#r "packages/Hopac/lib/net45/Hopac.dll"
open Hopac
open Hopac.Infixes
type Delkrav = {
DelkravId : int
Delkravsnamn : string
@ulve
ulve / sum.cs
Last active February 28, 2018 11:34
Sum list
public void Calc()
{
var lists = new List<List<int>>
{
new List<int> { 1, 1, 2, 2 },
new List<int> { 1, 1, 1, 1 },
new List<int> { 1, 2, 3, 4 },
new List<int> { 9, 1, 2, 1, 2, 9 }
};