Welcome to my blog

Weekly

The Programming Languages Zoo
The Programming Languages Zoo is a collection of miniature programming languages which demonstrates various concepts and techniques used in programming language design and implementation. It is a good starting point for those who would like to implement their own programming language, or just learn how it is done.
psibi/dhall-mode
Emacs Major mode for working with Dhall configuration language

Lamdu
This project aims to create a next-generation live programming environment that radically improves the programming experience
firehol/netdata: Get control of your servers. Simple. Effective. Awesome! https://my-netdata.io/
netdata is a system for distributed real-time performance and health monitoring. It provides unparalleled insights, in real-time, of everything happening on the system it runs (including applications such as web and database servers), using modern interactive web dashboards.
Why Momentum Really Works
Really nice illustrated mathematics on the web
sweirich/pi-forall: A demo implementation of a simple dependently-typed language
Pi-Forall language

This language implementation is designed to accompany four lectures at OPLSS during Summer 2014. Notes for these lectures are included in the distribution:

Quantomatic :: Home
Quantomatic is a diagrammatic proof assistant, meaning it provides machine-support for reasoning with diagrammatic languages
Madoko is a fast javascript Markdown processor written in Koka It started out as a demo program for the new, strongly typed, Koka language and the name comes from “Markdown in Koka”.
brick: A declarative terminal user interface library
Write terminal applications painlessly with brick! You write an event handler and a drawing function and the library does the rest.

9.1. Language options — Glasgow Haskell Compiler <release> Users Guide
For example, we can have pair :: forall a. a -> forall b. b -> (a, b) and then say pair @Bool True @Char which would have type Char -> (Bool, Char).
cies/htoml: TOML file format parser in Haskell
A TOML parser library in Haskell.

TOML is the obvious, minimal configuration language by Tom Preston-Werner. It is an alternative to the XML, YAML and INI formats mainly for the purpose of configuration files. Many will find that XML and YAML are too heavy for the purpose of configuration files prupose while INI is underspecified. TOML is to configuration files, like what Markdown is for rich-text.
kcsongor/register-machine-type: Universal Register Machine implemented at the type-level of Haskell
Initialises R1 to 5, then raises 2 to the power of the value of R1, leaving the result (32) in R0. Uses R2 as a scratch register, thus the machine is initialised with 3 registers.

pow2 :: ('Halted a (r ': rs) ~
Run
'[
-- Instr | label index
-- set R1 to 5
Inc (R 1) (L 1) -- 0
, Inc (R 1) (L 2) -- 1
, Inc (R 1) (L 3) -- 2
, Inc (R 1) (L 4) -- 3
, Inc (R 1) (L 5) -- 4
-- set R0 to 1
, Inc (R 0) (L 6) -- 5
-- R0 = 2^R1
, Dec (R 1) (L 7) (L 12) -- 6
-- R2 = R0
, Dec (R 0) (L 8) (L 9) -- 7
, Inc (R 2) (L 7) -- 8
-- R0 = 2*R2
, Dec (R 2) (L 10) (L 6) -- 9
, Inc (R 0) (L 11) -- 10
, Inc (R 0) (L 9) -- 11

, Halt -- 12
]) => Proxy r
pow2 = Proxy
> let f :: Ring x => x -> x
> f x = x*x*x + x + 3
>
> let a = 3 :: Integer
>
> putStrLn $"f a = " + show (f a) Now, we'll create a polynomial from our ordinary function. > let g :: Polynomial Integer > g = provePolynomial f > > putStrLn "" > putStrLn$ "g $a = " + show ( g$ a )

Polynomials support operations that other functions in Hask do not support.
For example, we can show the value of a polynomial:
> putStrLn ""
> putStrLn $"g = " + show g > putStrLn$ "g*g+g = " + show (g*g + g)

> let f :: Ring x => x -> x
> f x = x*x*x + x + 3
>
> let a = 3 :: Integer
>
> putStrLn $"f a = " + show (f a) Now, we'll create a polynomial from our ordinary function. > let g :: Polynomial Integer > g = provePolynomial f > > putStrLn "" > putStrLn$ "g $a = " + show ( g$ a )

Polynomials support operations that other functions in Hask do not support.
For example, we can show the value of a polynomial:
> putStrLn ""
> putStrLn $"g = " + show g > putStrLn$ "g*g+g = " + show (g*g + g)
A Haskell Study Syllabus :: FP Complete