See https://github.com/romainl/idiomatic-vimrc for an up-to-date version.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Windows Registry Editor Version 5.00 | |
[HKEY_CLASSES_ROOT\Directory\Background\shell\open_msys2] | |
@="Open MSYS2 here" | |
[HKEY_CLASSES_ROOT\Directory\Background\shell\open_msys2\command] | |
@="c:\\msys64\\usr\\bin\\mintty.exe /bin/sh -lc 'cd \"$(cygpath \"%V\")\"; exec bash'" | |
[HKEY_CLASSES_ROOT\Folder\shell\open_msys2] | |
@="Open MSYS2 here" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
data MyState s a = MyState (s -> (a, s)) | |
get :: MyState s s | |
get = undefined | |
put :: s -> MyState s () | |
put = undefined | |
modify :: (s -> s) -> MyState s () | |
modify = undefined |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{-# LANGUAGE MultiWayIf, BangPatterns #-} | |
import Data.Word | |
import Data.Char | |
data Tape = Tape { negatives :: [Word8], currentTape :: !Word8, positives :: [Word8] } | |
mkTape = Tape (repeat 0) 0 (repeat 0) | |
shiftLeft (Tape (x:left) curr right) = Tape left x (curr:right) | |
shiftRight (Tape left curr (x:right)) = Tape (curr:left) x right |
This post also appears on lisper.in.
Reader macros are perhaps not as famous as ordinary macros. While macros are a great way to create your own DSL, reader macros provide even greater flexibility by allowing you to create entirely new syntax on top of Lisp.
Paul Graham explains them very well in [On Lisp][] (Chapter 17, Read-Macros):
The three big moments in a Lisp expression's life are read-time, compile-time, and runtime. Functions are in control at runtime. Macros give us a chance to perform transformations on programs at compile-time. ...read-macros... do their work at read-time.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pauseTime = 0.35 | |
timePerThrow = 300 | |
handMovement = 0.2 | |
pattern = [5] | |
rotatePattern : Int -> [a] -> [a] | |
rotatePattern n xs = |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{-# LANGUAGE TypeFamilies #-} | |
{-# LANGUAGE TypeOperators #-} | |
{-# LANGUAGE MultiParamTypeClasses #-} | |
{-# LANGUAGE FunctionalDependencies #-} | |
{-# LANGUAGE FlexibleInstances #-} | |
{-# LANGUAGE UndecidableInstances #-} | |
{-# LANGUAGE StandaloneDeriving #-} | |
{-# LANGUAGE GeneralizedNewtypeDeriving #-} | |
{-# LANGUAGE GADTs #-} | |
{-# LANGUAGE Rank2Types #-} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Liars where | |
import Control.Monad | |
import Data.List | |
data Person = Truthteller | Liar deriving (Show, Eq) | |
says :: Person -> Bool -> Bool | |
says Truthteller = id | |
says Liar = not |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
#Heith Seewald 2012 | |
#Feel free to extend/modify to meet your needs. | |
#Maya on Ubuntu v.1 | |
#This is the base installer... I’ll add more features in later versions. | |
#if you have any issues, feel free email me at heiths@gmail.com | |
#### Lets run a few checks to make sure things work as expected. | |
#Make sure we’re running with root permissions. | |
if [ `whoami` != root ]; then |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Require Import Coq.Program.Basics. | |
Require Import Coq.Program.Syntax. | |
Require Import Coq.Init.Datatypes. | |
Require Import Coq.Unicode.Utf8. | |
Open Local Scope program_scope. | |
Open Local Scope list_scope. | |
Open Local Scope type_scope. | |
Class Functor (φ : Type → Type) := { |