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!
\