Skip to content

Instantly share code, notes, and snippets.

@nna774
nna774 / gist:3360880
Last active October 8, 2015 16:48
Public Key And Fingerprint
********** ********** **********
*** この公開鍵は失効しました... ***
********** ********** **********
------------------------------
pub   1024D/EB161DAC 2012-07-29
      Key fingerprint = EF2F AB4D 8FA0 ABB5 9CED  B5A1 3974 272B EB16 1DAC
uid                  NoNameA 774 (NNN77) <nonamea774@gmail.com>
sub   4096g/32C1FE5A 2012-07-29
@nna774
nna774 / gist:3361116
Created August 15, 2012 15:46
オセロ
-- オセロ
--import Data.Functor
import Maybe
import Control.Monad
data Color = Black | White deriving (Eq, Show, Read)
type Cell = Maybe Color
type Board = [[ Cell ]]
@nna774
nna774 / ski.hs
Created August 15, 2012 15:48
SKコンビネータ
{-# OPTIONS -fglasgow-exts #-}
i :: forall a. a -> a
i = \x -> x
k :: forall a b. a -> b -> a
k = \x -> \y -> x
s :: forall a b c. (a -> b -> c) -> (a -> b) -> a -> c
s = \x -> \y -> \z -> x z $ y z
@nna774
nna774 / gist:3401842
Last active October 8, 2015 23:08
Accounts
The B, C, K, W system is a variant of combinatory logic that takes as primitive the combinators B, C, K, and W.
BCKWシステムとは、B、C、K、Wの四つの組み込みコンビネータを持つコンビネータ算法の一種である。
This system was discovered by Haskell Curry in his doctoral thesis Grundlagen der kombinatorischen Logik, whose results are set out in Curry (1930).
このシステムは、ハスケル・カリーによって
The combinators are defined as follows:
四つのコンビネータは以下のように定義される。
B x y z = x (y z)
C x y z = x z y
K x y = x
W x y = x y y
SKI combinator calculus is a computational system that may be perceived as a reduced version of untyped lambda calculus.
SKIコンビネータ算法とは、型無しラムダ算法の単純化されたものと言われている計算理論である。
 It can be thought of as a computer programming language, though it is not useful for writing software.
SKIコンビネータは、大きなプログラムを書くのには向いていないが、プログラミング言語と見ることもできる。
 Instead, it is important in the mathematical theory of algorithms because it is an extremely simple Turing complete language.
しかし、これはアルゴリズムの理論としては重要なものである。なぜなら、とても単純ではあるが、チューリング完全であるからである。
All operations in lambda calculus are expressed in SKI as binary trees whose leaves are one of the three symbols S, K, and I (called combinators).
全てのラムダ式は、SKIの二分木として表すことができる。それらの葉はコンビネータと呼ばれるSKIの三つである。
 In fact, the symbol I is added only for convenience, and just the other two suffice for all of the purposes of the SKI system.
実は、Iコンビネータは、利便性の為に存在しているに過ぎない。残りの二つだけで全てのラムダ式をSKIコンビネータに書き換えられる。
@nna774
nna774 / gist:3656415
Created September 6, 2012 13:46
6さいカンファレンス01
#include <stdio.h>
#include <math.h>
/* 7 6 7 6 7 2 5 3 0 0 0 0 0 0 0 0 */
/* 0 3 5 6 7 10 12(ブルーススケール) */
/* -9 -7 -5 -4 -2 0 2 3 3 2 0 -2 -4 -5 -7 -9 */
/* 9 9 7 7 6 6 6 6 4 6 7 4 2 2 2 2 */
/* 100 -100 100 -100 50 -50 25 -25 12 -12 6 -6 3 -3 0 0 */
int main(void)
{
int i, j;
@nna774
nna774 / s.hs
Created October 31, 2012 13:19
subset of shougi?
-- https://twitpic.com/aynpyj これ
-- これ自体の詳細は不明
-- http://ideone.com/25TF8 ここで軽く動かしてる
{-# OPTIONS
-XMultiParamTypeClasses
-XFunctionalDependencies
-XFlexibleInstances
#-}
@nna774
nna774 / fact.hs
Created November 6, 2012 13:39
factorization
-- http://www.datapointed.net/visualizations/math/factorization/animated-diagrams/
data Factor = One | Product Int Factor deriving (Show,Eq,Read,Ord)
fact :: Int -> [Int]
fact 1 = []
fact n = p : fact (n `div` p)
where p = head $ filter ((==0).(n `mod`)) [2..]
factmap :: [Int] -> Factor
@nna774
nna774 / advent.md
Created December 6, 2012 18:13
没アドベントカレンダー(12/1までに12日分書けたら公開しようと思ってたけど全く間に合わなかった......orz)

#*** Combinator Birds Advent Calender ***

はじめに

このAdvent Calenderは,Combinator Birds(Combinator論理)についての知識が全くない様な人に対して,Combinator Birdsを紹介するノリで書かれています.できるだけ複雑な知識は仮定しないようにはしていますが,わかりにくいところ等があったらごめんなさい.

この記事の中には幾つもの誤りが含まれている可能性があります.おかしいところがあれば遠慮なく突っ込んでください.

Combinator とは,難しく言うと、「自由変数を含まないラムダ式」あたりになるんでしょうか.
正確なことや細かいことはおいておいて,とりあえずCombinatorの世界に触れていただくことをメインに考えてこの記事を書くこととします.