Skip to content

Instantly share code, notes, and snippets.

Avatar
💭
Building myself a secondary brain...

Andrew Cherry kolektiv

💭
Building myself a secondary brain...
View GitHub Profile
View flake.nix
{
description = "A very basic flake";
inputs = {
fenix = {
url = "github:nix-community/fenix";
inputs.nixpkgs.follows = "nixpkgs";
};
nixpkgs = {
url = "nixpkgs/nixos-unstable";
@kolektiv
kolektiv / roman.js
Created Feb 3, 2019
Roman Numerals
View roman.js
const conversions = [
[1000, 'M'],
[900, 'CM'],
[500, 'D'],
[400, 'CD'],
[100, 'C'],
[90, 'XC'],
[50, 'L'],
[40, 'XL'],
[10, 'X'],
View nonempty.purs
module Data.NonEmptyArray where
import Prelude
data NonEmpty a =
NonEmpty a (Array a)
instance showNonEmpty :: Show a => Show (NonEmpty a) where
show (NonEmpty a as) = "NonEmpty: " <> show a <> show as
@kolektiv
kolektiv / machinestyling.fs
Last active Apr 13, 2017
Potential Alternative Configuration Styles for Freya Machines
View machinestyling.fs
/*
Prompted by discussion in the F# Slack, where it was proposed that reducing the use of CEs
might help people more easily pick up Freya.
Of course, there's no reason why both syntaxes can't be made available if that seems like
the right option.
The basic freya { ... } CE is a genuine monad, and so would always stay as a CE option (though
it can also be expressed using standard combinator operators/named functions already).
View example.fs
type Address =
{ Street: string
Number: int }
static member ToJson (x: Address) =
json {
do! Json.write "street" x.Street
do! Json.write "streetNumber" x.Number }
type House =
@kolektiv
kolektiv / fileserver.fs
Created Sep 16, 2016
Simple File Server Pipeline
View fileserver.fs
open System.IO
open Freya.Core
open Freya.Core.Operators
open Freya.Machines.Http
open Freya.Routers.Uri.Template
open Freya.Types.Http
// Configuration
let fileTypes =
View morphisms.fs
let record =
{ Ages = "24,56,45,10" }
(* 56 *)
let oldest =
Optic.get recordints_ record |> List.max
(* { Ages = "25,57,46,11" } *)
let record' =
Optic.map recordints_ (List.map ((+) 1)) record
@kolektiv
kolektiv / html.fs
Last active Jul 14, 2016
HTML CompEx playground
View html.fs
// Builder
type Builder<'a> (operations: BuilderOperations<'a>) =
member __.Return _ : 'a =
operations.Init ()
member __.ReturnFrom (c: 'a) : 'a =
c
@kolektiv
kolektiv / monadic.fs
Created Jan 8, 2016
Overloading monadic operators?
View monadic.fs
// Implementations
module Reader =
let bind (f: 'e -> 't, binder: 't -> 'e -> 'u) : 'e -> 'u =
fun e ->
binder (f e) e
// Specializations
View gist:bfec885e5ef9465bd13d
let t2 =
TopicDescription "testtopic2"
let t3 =
TopicDescription "testtopic3"
let setup =
ServiceBus.run (
ServiceBus.liftNamespace (
Namespace.Topics.create t3