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

Scheme golf tips

あなごる用 Haskell golf の教科書を読んで「俺もこういうの書きたい!」と思って書いてみた.(思ってから書くまでに1年くらい経ってるけど) アマチュアゴルファーなので至らぬ所もありありだけど,今後のScheme界とあなごる界の盛り上がりを願ってこの文章…

Scalaでidを書こうとした

最初,無名関数で書こうとしたら,どうすれば多相的になってくれるのかわからなくて,ぐぐってたら名前を付ければいいということだった. ところが, scala> def id[T](x: T) = x id: [T](x: T)T scala> id _ res0: Nothing => Nothing = <function1> scala> (id _)(42) <console></console></function1>…

京都大学11月祭ぷよぷよ通大会

ふぁいやー(京都大学ぷよぷよサークル) 動画倉庫に参加. 有名人が少なかったので予選突破した.明日東大で大会があるらしくてその影響なんだとか. 予選16勝(勝率7割程度?),準決勝リーグ1勝6敗(2-13)で敗退. 予選15勝の人は延長戦があったようだ. 今…

Gaucheで素数ストリーム

エラトステネスの篩 (define (divisor? x y) (eqv? 0 (remainder x y))) (define-constant +primes+ (stream-cons 2 (stream-filter prime? (stream-iota -1 3 2)))) ;; (define (prime? n) ;; (not (stream-any (cut divisor? n <>) (stream-take-while (cu…

「F#をまねる」をまねる

F# の |> 演算子がかっこよいので、Haskell で作ってみた。 infixl 0 |> (|>) :: a -> (a -> b) -> b a |> f = f a 以下のようにシェルのパイプのような感じで使う。 foo :: String foo = [1..100] |> map (*2) |> filter (\x -> x `mod` 6 == 0) |> sum |> …

gitをインストール

CC=/usr/bin/gcc ./configure --prefix=/usr/local make prefix=/usr/local sudo make prefix=/usr/local install意味がわからんけど configure にしか prefix=/usr/local つけてないとホームにインストールされてしまうので全部つけた. gccをインストール…

gitがアンインストールできない

CC=/usr/bin/gcc ./configure --prefix=/usr/local make sudo make install→何故かホームにインストールされる →sudo make uninstall →make: *** No rule to make target `uninstall'. Stop. 馬鹿なの?死ぬの?

gcc-4.6.1をインストール

gccをダウンロード,展開 GMPとMPFRとMPCをダウンロード,展開してgccを展開したディレクトリに放り込む configure,make,make install でできた.最初はGMP,MPFR,MPCをそれぞれmakeしてたけどgccのconfigureの時に何故かどうしても見付けてくれなかった(…

Hash#selectとHash#rejectの意外な相違点

rejectはデフォルト値を受け継ぐが,selectは受け継がない. Hash.new(42).select { nil }[0] # => nil Hash.new(42).reject { nil }[0] # => 42 リファレンスマニュアルの説明の微妙な違いは,この挙動の違いから来るものなのか? key, value のペアについ…

疑問メモ: IntはOrderedではない

Intは何故Orderedじゃないの? まさかHello, world!の次に

replの補完の挙動が怪しい

".".TABと打つと以下のようになる.バグ? scala> ".".<console>:1: error: unclosed string literal " ^"a".TABなら期待通りの動作をした. あとトップレベルメソッド(正確にはなんと呼ぶのか忘れた)が補完されないものがある.readLineとか. それからreadLineに食</console>…

Firefox4でGM_xmlhttpRequestが動かない

クロスドメインどころか同ドメインでも動かなかった alertは入ってない (クロスドメインでも)リクエストは届いているみたいなんだけどonloadもonreadystatechangeもonerrorも無反応 いみふ (6/10追記) 再起動したら動いたり突然動かなくなったりしてますます…

espresso.elのswitch-caseのインデントの修正

http://e-arrows.sakura.ne.jp/2010/12/closure-library-on-js2-mode.htmlを参考に設定していたのだけど,これだとcaseの中身のインデントがうまくいかなかった. myapp.main = function() { var Fruit = some.namespace.Fruit; switch (fruit) { case Fruit…

ac-complete-with-anythingが動かない

キーバインドして直接呼ぶと(error "pulldown-width accessing a non-pulldown") anything-call-source経由だと(wrong-type-argument arrayp nil)で直前がpulldown-width(nil) お手上げ (追記) 一瞬,普通にanythingしただけで(wrong-type-argument arrayp n…

(rnrs records syntactic)とsrfi-17の一般化されたset!

(rnrs records syntactic)とsrfi-17を組み合わせて使いたかったんだけど,どうも手動でsetterをset!しなければならないようだったので,マクロの勉強ついでにsetterをset!してくれるものを書いた. 最初は手続きで書いてdefine-record-typeの後に置くような…

Racket(PLT Scheme)をインストール

日が経っているのでうろ覚え. サイトからMac OS向けっぽいのをダウンロード 展開して/Applications/にぶち込む "/Applications/Racket v5.0.2/bin"にPATHを通す これでplt-r6rsでR6RSが動く.ただ,これだと"/Applications/Racket v5.0.2/man"とかガン無視…

GaucheでHaskellのscanl

Haskellのscanlに相当するものがなかったので書いた. (修正 9:24) (use gauche.collection) (define (scan-with-iterator+builder f seed end? next add! get) (let loop ((seed seed)) (add! seed) (if (end?) (get) (loop (f (next) seed))))) (define-me…