Skip to content

Instantly share code, notes, and snippets.

@ToJans
ToJans / post.md
Created Oct 16, 2015
Function, Applicative, Monad in .Net - Failed post
View post.md

+++ 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 Oct 12, 2015
Sudoku solver for Haskell
View Sudoku.hs
-- 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)
View quadtree.hs
-- 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 Sep 28, 2019
A haskell implementation of the hangman game
View hangman.hs
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 Sep 27, 2015
Jef & Tom's Awesome Modellathon
View abstract.md

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
View Uitleg.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeOperators #-}
module StorageServer where
import Models
import Servant.API
import ServantHelpers
import StorageDB
@ToJans
ToJans / ServantHelpers.hs
Last active Sep 24, 2015
Composable routes in servant
View ServantHelpers.hs
module ServantHelpers(Server,Proxy(..),err400, err404,liftIO,liftIOMaybeToEither) where
import Control.Monad.IO.Class (MonadIO, liftIO)
import Control.Monad.Trans.Either (EitherT, left, right)
import Servant(ServantErr,Proxy(..))
import Servant.Server
liftIOMaybeToEither :: (MonadIO m) => a -> IO (Maybe b) -> EitherT a m b
liftIOMaybeToEither err x = do
@ToJans
ToJans / phonenumbers.hs
Last active Sep 11, 2015 — forked from mathiasverraes/phonenumbers.hs
Phone Number Kata
View phonenumbers.hs
-- Given a list of phone numbers, determine if it is consistent.
-- In a consistent phone list no number is a prefix of another. For example:
-- Bob 91 12 54 26
-- Alice 97 625 992
-- Emergency 911
-- In this case, it is not possible to call Bob because the phone exchange
-- would direct your call to the emergency line as soon as you dialled the
-- first three digits of Bob's phone number. So this list would not be consistent.
module PhoneList(isConsistent) where
@ToJans
ToJans / bio-commercial.md
Last active Aug 29, 2015
Commercial biography
View bio-commercial.md

Picture of Tom Janssens

Before Tom Janssens founded Arealities.com, he spent over a decade solving business problems using software and helping organisations to get better at building software.

Early 2014, he noticed an opportunity in the market and founded Arealities.com, a software company offering real-time interactive 3D visualisations over the web, next to virtual - and augmented reality solutions.

Next to this Tom is also one of the co-founders of DDD Belgium: a user group aiming to bridge the gap between software developers and business users.

You can follow Tom on his personal twitter account: @ToJans or via @ArealitiesCorp.

@ToJans
ToJans / script.md
Last active Aug 29, 2015
Arealities sales video script
View script.md

You've created a wonderfull, customizable product and are ready to sell it to the whole, wide, world.

Do your prospects have a hard time visualizing what you are selling?

Do you think you could sell more if you could show your product in full blown 3D?

Arealities.com visualizes your buyer's dream in full effect, so close you can almost feel it.