2013-01-01から1年間の記事一覧

遅延リストで素数

Prime numbers - HaskellWiki から移植。 -- from www.haskell.org/haskellwiki/Prime_numbers minus = (X, Y) -> return X if Y\empty! x, xs = X\head!, X\tail! y, ys = Y\head!, Y\tail! if x < y Sequence\ConsDelay (-> x), Delay -> minus xs, Y else…

Lua/MoonScriptで部分関数

昨日の続き。 util = require 'util' import Function, Switch, Case, Delay, List, Array, Sequence from util _ = util.it require 'std' print '# Function combination' print "(_ + 5 .. _ * 2)(1) ==> #{(_ + 5 .. _ * 2)(1)}" print '# Partial funct…

Lua/MoonScriptで遅延リスト

MoonScriptで遅延リストを実装した。 list = require 'list' import Function, Delay, List, Array, Sequence from list require 'std' local fib fib = Sequence\Table({1, 1})\appendDelay -> fib\zipWith op['+'], fib\tail! nat = Sequence\iterate (=> …

何でも無限リスト

純Lispにはアトムとリストがあるけど、アトムを無くして、なんでも無限リストにしたらどうだろう? 今までアトムだと思っていたものは、実はリストだったのだ。 なんでもリストだから、carとcdrは何にでも適用できる。carは左のリストを取り出し、cdrは右の…

新しいプログラミング言語

新言語登場 新しいプログラミング言語を作っています。mandel59/psil · GitHub現状はこんな感じ。 let x: 'ハロー' y: add(+'1', +'9') z: {a: x; b: y} debug.print "\(z.a)ワールド \(z.b)"……でも内容はこれから色々変えるので、多分このままの形では残り…

プログラミング言語Egisonのパターンマッチ機能をLua上で実装してみた

Programming Language Egison プログラミング言語Egisonは、強力なパターンマッチ機能を持つという。とりあえず、同じような機能をLua上で使えるように、MoonScriptを使って実装してみた。 mandel59/egimoon · GitHub print show match_all {1, 2, 3}, (List…

ぼくのかんがえた、さいきょうのげんご 1

周りで言語を考えたり処理系作ったりしている人がいると、自分でも作りたくなってきた。ここで、「僕の考えた最強の言語」の青写真を書こうと思う。 自然言語に学ぶ Perlのやったように、自然言語に学ぶことは多いと思うので、自然言語の持つ性質をいろいろ…

Birdfontをビルドしたかった 2

0000004: build fails - MantisBT trunkビルドできないバグ対応中

Birdfontをビルドしたかった

本年もよろしくおねがいいたします。via MOONGIFT フォントを作るのに最適なフォント専用エディタ「Birdfont」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ 早速ビルドしてみる GitoriousのBirdfontリポジトリ…