• Stars
    star
    151
  • Rank 246,057 (Top 5 %)
  • Language
    Scala
  • Created over 4 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A series of down-to-earth articles on implementing type inference

Type Inference by Example

A series of down-to-earth, code-oriented articles on implementing type inference.

This series is also available on Medium.

Chapters

Type constraints? Substitutions? What?

This chapter is an introduction, so there's no code.

Inferring generic types

Final code for this chapter here.

Upcoming

  • Type classes
  • Functional dependencies
  • Field constraints
  • Higher ranked types
  • Named arguments
  • Optional arguments
  • Varargs

Contact

I'm Joakim Ahnfelt-Rønne, MSc Computer Science (University of Copenhagen). I work with functional programming in the industry and I co-organize a meetup about it in Copenhagen. In my spare time, I work on programming languages - and apparently, write about it.

Catch me on https://discord.gg/4Kjt3ZE - it's a very nice community about programming language design. I'm @ahnfelt.

More Repositories

1

react4s

Production ready React wrapper for Scala.js - composable lifecycle - no memoization, no macros, no implicits.
Scala
124
star
2

funk

PROTOTYPE: A minimal scripting language - OOP via lambda functions and pattern matching
JavaScript
53
star
3

firefly-boot

Bootstrap compiler for Firefly
JavaScript
52
star
4

parsercombinator

A parser combinator for Java 8. Proof of concept.
Java
13
star
5

AlgorithmWStepByStep

Type inference for ML-like languages. A port to F# of "Algorithm W Step by Step" by Martin Grabmüller.
F#
10
star
6

commandline

EXPERIMENTAL: A command line parser for Scala that follows POSIX and GNU conventions. No dependencies, no macros and no implicits.
Scala
8
star
7

rulebuilder

A rule builder for business logic in plain JavaScript. Boolean logic and custom operators. Styleable. Version 0.0.1.
6
star
8

react4s-todomvc

TodoMVC in 139 lines of Scala with React4s
CSS
6
star
9

mlcsp

(Not under active development). OCamlCSP is a library for Ocaml based on Tony Hoares Communicating Sequential Processes (CSP) .
OCaml
5
star
10

FQL

A functional query language.
Haskell
4
star
11

cms

Experimental: Goals: a minimal amount of "admin screens" and everything editable in place. Status: planning.
Haxe
3
star
12

intestines

Experimental: A game
Haskell
3
star
13

guts

Experimental: A game
Haskell
3
star
14

alua

DRAFT: Alua is a typed language whose syntax is Lua-like
Scala
3
star
15

Templ

A template language with statically typed bindings for Java.
Java
2
star
16

visualization

School project
Haskell
2
star
17

Piqo

Experimental: A new strain of that programming language I am always working on. NOTE: This is not being worked on actively, and the current state of the language is mostly idea only.
Haskell
2
star
18

keen

Experimental: An eager functional programming language
Haskell
2
star
19

elm-editable-tree

A very simple example that shows how to implement an editable tree structure in Elm. The trick is a recursive Model type, the recursive use of update and view, and the At i msg combinator.
Elm
2
star
20

jsonr

EXPERIMENTAL: JSONR is JSON, but with concise syntax, simpler schemas and efficient binary encoding.
2
star
21

chainquery

Experimental: A typed database query language for Java.
Java
1
star
22

ri

Recursive install for maven 2
Java
1
star
23

Abyss

Experimental: A game
Haskell
1
star
24

jtransaction

Experimental: Transactional memory for Java
Java
1
star
25

reactive

Experimental: Reactive GUI library for JavaScript
JavaScript
1
star
26

uld-hd

A port of Werks ULD library for OpenGL (WebGL + fragment shader)
JavaScript
1
star
27

elmchatgpt

A toy implementation of the ChatGPT client in Elm
Elm
1
star
28

guts2

Experimental: A game
1
star
29

dope

Experimental: A game of trust and betrayal
Haskell
1
star
30

astrobots

Experimental: A touch-screen programming language (lambda calculus + functional reactive programming) and a game
Java
1
star
31

boa

EXPERIMENTAL: A language with hints of Python, Smalltalk and Haskell
Scala
1
star
32

ziphon

Experimental: A programming language
Haxe
1
star
33

typed-format

Experimental: A simple and complete schema language and binary format for data interchange.
1
star
34

react4s-example

Please see react4s.org instead
Scala
1
star
35

Editor

Experimental: A texmode editor that gets out of your way. Standard keyboard shortcuts, yet you don't *need* to leave the home row. It's being written (in Haskell), but it's not useable yet, and don't hold your breath.
Haskell
1
star