MARK P. JONES
Pacific Software Research Center
Department of Computer Science and Engineering
Oregon Graduate Institute of Science and Technology
| import static java.lang.System.*; | |
| import java.util.function.BiFunction; | |
| import java.util.function.Function; | |
| // Implementation of a pseudo-GADT in Java, translating the examples from | |
| // http://www.cs.ox.ac.uk/ralf.hinze/publications/With.pdf | |
| // The technique presented below is, in fact, just an encoding of a normal Algebraic Data Type | |
| // using a variation of the visitor pattern + the application of the Yoneda lemma to make it | |
| // isomorphic to the targeted 'GADT'. |
| // | |
| // Free.swift | |
| // Swift_Extras | |
| // | |
| // Created by Robert Widmann on 9/19/14. | |
| // Copyright (c) 2014 Robert Widmann. All rights reserved. | |
| // | |
| import Foundation |
| with (import <nixpkgs> {}); | |
| stdenv.mkDerivation { | |
| name = "717-app"; | |
| buildInputs = [ libiconv openssl ruby21 postgresql git nodejs ]; | |
| src = "/src/717"; | |
| builder = builtins.toFile "builder.sh" '' | |
| set -e | |
| source $stdenv/setup |
| #FDF6E3,#EEE8D5,#EEE8D5,#586E75,#EEE8D5,#657B83,#859900,#CB4B16 |
| {-# LANGUAGE FlexibleInstances #-} | |
| module Main where | |
| import Control.Applicative ((<$>)) | |
| import Control.Monad.State.Lazy as S | |
| class Monad m => World m where | |
| writeLine :: String -> m () | |
| instance World IO where |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
WARNING This list outdated, for the up to date version visit https://haskellcosm.com
Types of work:
I have moved this over to the Tech Interview Cheat Sheet Repo and has been expanded and even has code challenges you can run and practice against!
\