Skip to content

Instantly share code, notes, and snippets.

@ToJans
ToJans / Tests.Veranda.fs
Last active October 20, 2016 11:53
canopy and fsharp to test the happy path for Virtual Sales Lab
module Tests
open canopy
open Utils
open System
let veranda (rootPath) = (rootPath + ": Veranda") &&& fun () ->
let clickNext expected fn =
click ".verandawizard.selected input[type=submit]"
@ToJans
ToJans / interfaces.cs
Last active October 11, 2016 09:50
Functor, applicative and monad interfaces
// In C# we can't enforce generic classes in interfaces, so we can't use interfaces to define the contract.
// I can only give examples of the minimal code it needs to implement.
class FunctorImpl<T> {
FunctorImpl<T> Pure(T val);
FunctorImpl<S> Apply<S>(Func<T, S> fn);
// Requirement: Pure(val).Apply(x=>x) == Pure(val)
}
class ApplicativeImpl<T> where {
@ToJans
ToJans / intro.md
Last active December 13, 2015 22:05
monads, applicatives, functors

Definitions

W<a>

A wrapper of type W that contains zero or more elements of type a.

c functionname(a,b)

A function named functionname that takes a value of type a, a value of type b and returns a value of type c.

@ToJans
ToJans / DB.hs
Last active October 21, 2015 15:28
How do I get this into a ServerT ?
{-# LANGUAGE OverloadedStrings #-}
module Lib.DB(query_,query,execute_,execute,lastInsertRowId
,find,DB.FromRow,DB.fromRow,DB.field,ResourceT,runResourceT)
where
import Control.Monad (liftM)
import Control.Monad.IO.Class (liftIO)
import Control.Monad.Reader (ReaderT (..), ask, runReader)
import Control.Monad.Trans.Class (lift)
@ToJans
ToJans / post.md
Created October 16, 2015 12:41
Function, Applicative, Monad in .Net - Failed post

+++ Description = "" Tags = ["Development", "Haskell", "C#", "CSharp"] date = "2015-10-16T09:24:25+02:00" menu = "main" title = "Haskell concepts in C#"

+++

I've made numerous attempts to explain functors, applicatives, monads and the likes in .Net, and here is another one:

@ToJans
ToJans / Sudoku.hs
Last active October 12, 2015 07:49
Sudoku solver for Haskell
-- Sudoku solver by @ToJans
--
-- Parses a Sudoku from a string and solves it
-- Parsing happens by filtering out ['1'-'9'] and '.'
{-# LANGUAGE OverloadedStrings #-}
module Sudoko where
import Data.Maybe(isNothing,fromMaybe)
-- A quadtree implementation with a max points per node
module Main where
import Control.Monad (replicateM)
import System.Random (randomRIO)
data Point = Point Int Int
deriving Show
type LeafPointCount = Int
@ToJans
ToJans / hangman.hs
Last active September 28, 2019 15:25
A haskell implementation of the hangman game
import Control.Monad (when)
import Data.Char (toLower)
import Data.List (transpose)
import System.Random (randomIO)
wordsPath :: FilePath
wordsPath = "words.txt"-- "/usr/share/dict/words"
data GameState = GameState
{ _wordToGuess :: String
@ToJans
ToJans / abstract.md
Last active September 27, 2015 06:15
Jef & Tom's Awesome Modellathon

Jef & Tom's Awesome Modellathon

The Model v2.0 alpha (Inspired by Kraftwerk - The model)

I love to model and it's looking good
I'll turn it into code that is well understood
It might be hard to get, is wrong from time to time
It takes new design approach to change your mind
@ToJans
ToJans / Uitleg.hs
Last active September 24, 2015 14:00
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeOperators #-}
module StorageServer where
import Models
import Servant.API
import ServantHelpers
import StorageDB