2008-09-01から1ヶ月間の記事一覧

Agdaでインタプリタ

memo:http://www.iis.sinica.edu.tw/~scm/2008/typed-lambda-calculus-interprete/

どれちょっとropeをbalancedにoptしてみようか?

http://www.kb.ecei.tohoku.ac.jp/ml2008/program.htm の A Functional Implementation of the Garsia-Wachs Algorithm (functional pearl)がfunctional pearlと書いていて面白そうだったので、ACMのやつとか読めないからO'Browserを諦めてこっちを読んでみ…

なんか最近は

Webプログラミングとかそれらしい事をしたいなーと思う次第なのですが、やっと親しく成れてきたHaskellさんと離ればなれになるのも嫌だなーと思うと、 まぁどうでも良いかとかは思ったりします。 何か作りたいというよりも、作ってる段階で何か楽しみたいっ…

(XML)HTML駆逐

取りあえずソースだけ <p id=out></p> <script type="application/jscheme"> (define (sxml->xml sxml) (define (make-attr l ac) (if (null? l) ac (make-attr (cdr l) (string-append ac " " (symbol->string (caar l)) "=\"" (cadar l) "\"")))) (define (make-xml x bef aft) (cond ((string? x) …

地獄

http://jigoku.bugyo.tk/scheme.html これは面白いwwww

これ読まないと駄目らしい

http://www.cs.indiana.edu/~dyb/papers/3imp.pdf 3つの実現モデルによるSchemeの実装 1.Heap-base 2.Stack-base 3.String-base よし印刷してくる。

Smalltalk勉強会

http://www.smalltalk-users.jp/Home/gao-zhimemo memo

GMachine on Haskell

-- 相変わらずParse Monadをぴゃぴゃっと書いてる module Parser where import Data.Char import Control.Monad data Result val rem = Parsed val rem | NoParse deriving Show data Parser a = Parser (String -> Result a String) ext_parser :: Parser a…

memo

http://lambda-the-ultimate.org/node/2981 Polymorphic Algebraic Data Type Reconstruction多相代数型再構築??(直訳でもピンと来ない)

某TKB大

のプロなんとかにゅなんとかっていう授業は、C言語で出来るだけ短いコードを書いて、プリンタに楽をさせてあげよう、という提出媒体は紙だからあんましエコじゃないよなーという感じの授業です。 例題としては main(){puts("How are you?\nI am fine,thank y…

超似非G-Machineを実装してみた

http://www.jaist.ac.jp/~kiyoshiy/writing/ http://www.jaist.ac.jp/~kiyoshiy/writing/gmachine.pdf 前半だけ読んで、ざっと書いてみました。 Graph-Reductionとか正直分からなかったので、それを考慮して書こうと思ったのですが、普通にちっこいλ式解釈機…

Prolog

の時代が来ると聞いたので、早速図書館でPrologの技法なる絶版の本を借りてきました。 まぁ誇張しましたが、論理プログラミングとかは知らんので良いかなと。 取りあえずこいつを読んだり。

Chromeにおいては

JavaScriptの代わりに、Pythonで色々書けますよー的なのをgoogleが出して、そしたら色んな人が俺俺言語をChrome上で動かそうとして面白い事になるかもしれないので、そこで他のブラウザと差が取れるんじゃないかとは思います。 要するにブラウザ拡張の手ほど…

あーそーいや

TemplateHaskellのあの感じは、Core languageにそっくりだと思うんですけど、どうなんでしょうね。

Google Chromeの特にV8あたりを使ってみる

Google先生がChromeとかいうのを出したようなので、使うのはそっちのけ、というかWindowsとか無いのでJavaScript engineであるV8のソースコード引っ張ってきた。 v8.hとかをincludeする事は出来るけども、肝心のJavaScriptのinterpretというかcompileが出来…

JHC

jhc使った事無いとか、マジ小学生までなんですけど、本当に。。。 って言われたので、jhcを使ってみましたとも。 jhc jhcの事なんか皆さん私ごときに説明されたくないでしょうけど、図々しくそして誤解を恐れずに言うと、Cのコードを吐いてそいつから実行フ…

GADTs

http://okmij.org/ftp/Haskell/PrintScan.hs 元はコレ。 で、sprintfの所だけ抜き出した {-# LANGUAGE GADTs #-} data F a b where FLit :: String -> F a a FInt :: F a (Int -> a) FChr :: F a (Char -> a) (:^) :: F b c -> F a b -> F a c intp :: F a b…

D

の同人誌とかを、Dが好き過ぎて大変な事に今現在なってるmiskyさんとかが出してくれないかなーとか思うわけです。 そいでもって もし書かれるんだったら、お手伝いさせて欲しいなーとか。

scm2js

http://hop.inria.fr/usr/local/share/hop/weblets/home/articles/scheme2js/article.html この辺とかを読む。メモ Abstract SchemeからJavaScriptにコンパイルする事は出来るんだけど、Continuations,exact numbers(これ何?),partial treatment of tail rec…

TH使って思ったのは

実プログラミングでは全く訳立てて無い、というか普通のプログラム書いてないで適当に遊んでただけなので勝手な事書きますけど、書きにくさはあるものの、この柔軟さはC++のTemplate的意味よりmacro的な意味に寄ってるんじゃないかとかは思いました。

Type Safe Printf

をTHで実装してみる的な。 printfの型無視バージョンの実装は普通こんな感じになります printf fmt = pr fmt "" where pr :: String -> String -> なんか色々入るの pr "" res = PRes res pr ('%':'d':cs) res = (\i -> pr cs (res ++ show (i::Int))) pr ('…

THでzip製作

論文にのってたので、Quoted-Monad使わない方向性で書いた。 ていうか、[| \x -> x |]とかで書いて、$つけるとか意味分からんので。 それとdoc読まないでいきなり書いてるから未だにさーぱり分からん。 module Th_ZipN3 where import Language.Haskell.TH im…