Skip to content

Instantly share code, notes, and snippets.

View Heimdell's full-sized avatar
🔨
Right tool for the right job

Андреев Кирилл Heimdell

🔨
Right tool for the right job
  • Ульяновск
View GitHub Profile
class Utils {
static unsnoc(array) {
return {
init: array.slice(0, -1),
last: array[array.length - 1],
}
}
}
module type Eq = sig
type t
val equal : t -> t -> bool
end
module type Order = sig
type comparison =
| Less
| Equal
{-# language TupleSections #-}
import Control.Arrow ((&&&))
import Data.Function (on)
import Data.List (groupBy, sortBy)
import Data.Ord (comparing)
f :: Ord k => [(v, [(k, x)])] -> [(k, [(v, x)])]
f = map (fst.head &&& map snd) -- [[(k, (v, x))]] -> [(k, [(v, x)])]
@code-color: hsl(0,0%,100%);
@keyword-color: hsl(0,0%,70%);
@string-color: hsl(80,55%,55%);
@comment-color: hsl(0,0%,0%);
@syntax-background-color: hsl(0,0%,24%);
@syntax-cursor-color: hsl(0,0%,100%);
@syntax-selection-color: hsl(0,0%,30%);
@syntax-selection-flash-color: hsl(210,100%,100%);
var StdLib = require('./stdlib.js')
/*
module for working with input streams (char iterators, in fact)
*/
var Stream = require('./stream.js')
/*
var M = (
{ set: (o, ...things) => Object.assign({}, o, ...things)
, copy: (o) => M.set(o)
, modify: (o, diff) =>
{ var result = M.copy(o)
for (var key in o)
if (diff[key])
@Heimdell
Heimdell / apparse.js
Last active October 13, 2016 09:52 — forked from anonymous/parser.js
var ok = (value, offset) => ({good: true, value, offset})
var err = (message, offset) => ({message, offset})
var pure = (value) => ({type: "pure", value})
var fail = (message) => ({type: "fail", message})
var token = (token) => ({type: "token", token})
var any = (...parsers) => ({type: "any", parsers})
var many = (parser) => ({type: "many", parser})
var some = (parser) => ({type: "some", parser})
import Data.Map (Map)
import qualified Data.Map as Map
import Data.Composition
import Data.Monoid
data Type
= Type :$ Type
| TVar Name
<!DOCTYPE HTML>
<html>
<head>
<script src="./classy-frp.js">
</script>
<script>
var digits = Event.new();
var dots = Event.new();
var ops = Event.new();
var enters = Event.new();
import Html exposing (text)
import String exposing (join)
-- Entry point
main = text <| toString <| test
-- Test data
testState = {cells =