Skip to content

Instantly share code, notes, and snippets.

View ayu-mushi's full-sized avatar
💛

ayu-mushi ayu-mushi

💛
View GitHub Profile
@ayu-mushi
ayu-mushi / sleepable.hs
Last active October 4, 2015 21:46
Sleep on Haste Haskell by Operational Monad
{-# LANGUAGE GADTs, GeneralizedNewtypeDeriving #-}
import Haste
import Haste.Foreign
import Control.Monad.Operational
import Control.Monad.IO.Class
import Control.Applicative
data SleepableIOF a where
Sleep :: Int -> SleepableIOF ()
@ayu-mushi
ayu-mushi / Combinators.agda
Last active October 15, 2015 11:40
Agdaはじめます
module Combinators where
b : {A B C : Set} -> (B -> C) -> (A -> B) -> A -> C
b x y z = x (y z)
c : {A B C : Set} -> (A -> B -> C) -> B -> A -> C
c x y z = x z y
k : {A B : Set} -> A -> B -> A
k x y = x
@ayu-mushi
ayu-mushi / music-lang.md
Last active November 1, 2015 09:13
音楽記述言語について

音楽記述言語について

コンピュータを使わない音楽では普通、作曲する段階と演奏する段階とは分かれており(即興演奏の場合は違いますけど)、楽譜に書かれている部分と演奏家に任される(解釈)部分があります。 一方、コンピュータでの作曲では演奏家(timidityとか)に任される部分はかなり少なく、例えばdominoだったらトリルとかアルペジオとかも一々打ち込まなくてはなりません。 トリルやアルペジオは勝手にやってくれる作曲ソフトもあるんでしょうけど、それでもその部分を変更したくなったときなどは結局一々消したりする事になります。 他にも、強弱を数値で細かく指定しなきゃいけなくて不便な事があります(これも後から変えようとすると面倒)。 普通の楽譜ならこういうのは専用の記号があってすぐに書けるものですし、他にも、伴奏で通奏低音の記号を書くだけとかコードネームを書くだけとかもできるでしょう。

これは文書の話で言うような「構造と体裁の分離」がされているか否かという事だと思います。 つまり、楽譜が構造で演奏が体裁という事です。

@ayu-mushi
ayu-mushi / free-monad-examples.hs
Last active December 13, 2015 03:47
Free Monadの使用例
{-# LANGUAGE DeriveFunctor, FlexibleContexts, UndecidableInstances #-}
import Control.Monad.Free
import Control.Monad (void)
import Control.Monad.Identity
import Data.Void
import Test.QuickCheck
-- Free Monadの使用例
@ayu-mushi
ayu-mushi / 1.md
Last active February 13, 2017 16:09
『型システム入門――プログラミング言語と型の理論(TaPL)』読書ノート

『型システム入門――プログラミング言語と型の理論(TaPL)』読書ノート

TaPLを買ったので、誤解があった場合に指摘を受けたりできるように、読書ノートを公開します。 暇な人は間違いを見つけたら教えて下さい。

(このノートの目的上、自信が無いことも言っているので、このノートに書いてあることはあまり信じないように)

###序文

必要な背景知識

@ayu-mushi
ayu-mushi / w3m_commentary.py
Last active July 2, 2017 12:36
Comment for each web page written for w3m browser
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# printenvを使ってw3mでページ毎にコメントを記録できるようにする
# 今まで作ったURLと注釈ファイル名(タイトル、ダブったら数字を付ける)の組の列をjsonで保持 連想配列
# URLを渡すと注釈ファイルが開く
# keymap A EXEC_SHELL "w3m_commentary.py"
import lxml.html
import json
@ayu-mushi
ayu-mushi / Powerset_by_filterM.hs
Last active July 22, 2017 18:07
Explanation of why `filterM (const [True, False])` maps list to its power set(list)
import Control.Monad
import Control.Applicative
-- filterM (const [True, False])
-- filterM :: (Applicative m) => (a -> m Bool) -> [a] -> m [a]
-- filterM p = foldr (\x -> liftA2 (\flg -> if flg then (x:) else id) (p x)) (pure [])
-- (<*>) :: [a -> b] -> [a] -> [b]
@ayu-mushi
ayu-mushi / je
Last active October 13, 2017 03:30
CUI英語辞書
#!/bin/bash
# ref: CUI超お手軽英語辞書 - capriccioso String Creating(Object something){ return My.Expression(something); } (http://d.hatena.ne.jp/its_out_of_tune/20120610/1339311044)
# + メモ化 & 言及英単語を再帰的呼び出し & 発音 & クリップボード監視翻訳
# 複数の語を分かち書きしたものからなる節を調べるときは語と語の間を(空白ではなく)プラス記号で区切る
# 例: Haskell Curry を調べるときは `je haskell+curry`
ISNEW=false
MAILTO="ayu.mushi2015@gmail.com"
SHELL=/bin/zsh
PATH=/usr/local/lib/anaconda2/bin/:/opt/mozart/bin/:/usr/local/ghc-7.10/bin:/usr/local/ghc-7.8.4/bin:/usr/local/ghc-7.10.2/bin/:/usr/local/bin:~/.local/bin:/opt/local/bin:/usr/local/ghc-7.8/bin:~/.cabal/bin/:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin/
HOME=/home/ayu-mushi
LANG=ja_JP.UTF-8
LC_ALL=ja_JP.UTF-8
CONTENT_TYPE=text/plain; charset=UTF-8
@ayu-mushi
ayu-mushi / Lib.hs
Last active April 4, 2018 12:03
GHCJS Test Code
{-# LANGUAGE JavaScriptFFI #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE RecursiveDo #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Lib
( myMain