Skip to content

Instantly share code, notes, and snippets.

@amutake
amutake / gist:6929670
Created October 11, 2013 04:38
FizzBuzz in Erlang
-module(fizzbuzz).
-export([start/1]).
start(End) ->
Pid = self(),
FizzBuzz = spawn(fun() -> fizzbuzz(Pid, End) end),
Fizz = spawn(fun() -> fizz(3) end),
Buzz = spawn(fun() -> buzz(5) end),
FizzBuzz ! {Fizz, Buzz},
receive
@amutake
amutake / gist:7910653
Last active December 31, 2015 00:59
Anomaly: Not enough components to build the dependent tuple. Please report.
Inductive A : Set := a : A.
Definition fantom (n : nat) := A.
Definition fantom_succ {n : nat} : fantom n -> fantom (S n) :=
fun _ => a.
Inductive ty : forall n : nat, fantom n -> Prop :=
| zero : ty O a
| succ : forall (x : nat) (f : fantom x), ty x f -> ty (S x) (fantom_succ f).
{-# LANGUAGE FlexibleContexts
, TypeOperators
, DeriveDataTypeable
, ConstraintKinds
, FlexibleInstances
, MultiParamTypeClasses
, UndecidableInstances #-}
import Control.Eff
import Control.Eff.Exception
@amutake
amutake / ContT.v
Last active May 29, 2016 17:31
ContT and ContsT instances (for scalaz)
Set Implicit Arguments.
Unset Strict Implicit.
(** Type Definitions *)
Inductive IndexedContsT (W M : Type -> Type) (R O A : Type) : Type :=
| mkIndexedContsT : (W (A -> M O) -> M R) -> IndexedContsT W M R O A.
Definition runIndexedContsT W M R O A (c : IndexedContsT W M R O A) : W (A -> M O) -> M R :=
match c with
@amutake
amutake / syuukei.rb
Last active July 16, 2016 01:22
行灯人気投票集計スクリプト
require 'csv'
classes = {}
file = ARGV[1]
GENEKI = '現役生'
OBOG = 'OBOG'
OTHER = 'その他'
CSV.foreach(file) do |row|
@amutake
amutake / focal_length.sh
Last active December 4, 2016 10:36
A script for making 'focal length - number' graph
#!/usr/bin/env bash
FOCAL=focal.dat
WC=~/tmp/wc.rb
if [[ "$1" == "-t" && ! -z "$2" ]]; then
exiftool -T -focallengthin35mmformat *.JPG | grep -v '-' | awk '{print NR, $0}' > $FOCAL
gnuplot -p -e "set terminal png; set term png size 2000,500; set term png font 'ヒラギノ丸ゴ ProN W4, 16'; set output '$2'; set xlabel 'n枚目'; set ylabel '焦点距離'; plot '$FOCAL' using 1:2:(1) with boxes"
rm $FOCAL
open $2
@amutake
amutake / titles.js
Created July 7, 2017 07:11
https://satsukita-andon.com/artisan/classdata から、投票用のを取ってくるスクリプト
Array.prototype.map.call(document.querySelectorAll("table tbody tr"), function (tr) { var c = tr.children; return c[2].textContent + "年" + c[3].textContent + "組" + "『" + c[4].textContent + "』"; }).join("\n");
@amutake
amutake / 1522-conservative-impl-trait.md
Last active November 6, 2017 07:00
1522-conservative-impl-trait-ja
@amutake
amutake / 2005-pattern-binding-modes-ja.md
Last active November 20, 2017 07:01
2005-pattern-binding-modes-ja

概要

参照に関するパターンマッチをよりわかりやすくします。

現在、参照に関するパターンマッチは ref& を使いわけなければいけません。

module Main where
import Control.Monad
import Data.List (nub)
data Coin = Black | White | Blank deriving (Eq, Ord)
instance Show Coin where
show Black = "●"
show White = "○"