プログラミング

ふつうのGUIプログラミング

研究室でGUIプログラミングは面倒という話が出ていた.以前Gladeで作った簡単なサンプルがあったのでメモしておく.対象はGTK+かつGlade.べたにGUIを書いていくのは面倒なのでGladeみたいなのは使った方がよいと思う. Gladeファイル GladeとかGazpachoで適…

グリーンスレッド

ってなんでグリーンなんだろうか.

[http://www.nist.gov/dads/:title]

名前から簡単な説明と作者名,出典を調べることが出来る.

副作用のない副作用

副作用のない言語に慣れてくると,副作用をふんだんに使うプログラムを読むのがしんどくなってくるという副作用があるようだ.

Perl

勉強会として時間を取る必要はない気がしてきた.皆の都合が合う時間もあんまりないし.2,3人でお題を出してコードを書いてくるのが良いかな?Webから情報を得るとしたら,公式のドキュメントとかここの上位のサイトなどが良いのだろうか.とりあえず基本的…

マルチスレッド

今Haskellでマルチスレッドなネットワークアプリを書いているのだが,わからん.参考になりそうなものが見つかったのでメモ.あとで読む.それとParsecも使ってみた.これは非常に簡単にかけて気持ちいいかもしれない.最後に,モナドだらけのプログラムはHa…

Haskellで近傍探索

昨日の続き.型を変えて,searchを追加した. import List import Ratio data Tree a = Leaf [String] | Node (String,Ratio Int) (Tree a) (Tree a) deriving Show (<->) :: (Eq a) => [a] -> [a] -> [Bool] x <-> y = zipWith (==) x y tv :: [Bool] -> Ra…

Haskellで近傍探索

import List import Ratio data Tree a = Leaf [[Bool]] | Node ([Bool],Ratio Int) (Tree a) (Tree a) deriving Show (<->) :: [Bool] -> [Bool] -> [Bool] x <-> y = zipWith (==) x y truthValue :: [Bool] -> Ratio Int truthValue [] = 0 truthValue x …

gauche-gladeの行方

しばらく放置気味のgauche-gladeの話.gauche-gladeを作ってサクサクGUIを書きたかったのだけれど,1から作るのはあまりにも面倒なことがわかった. たとえばGtkWindowといったクラス名とgtk-window-newなどの関数名の対応,あるいはborder_widthのような属…

[http://halogen.note.amherst.edu/~jdtang/scheme_in_48/tutorial/overview.html:title]

某巨大掲示板で見つけたHaskellでSchemeインタプリタを実装するページ.これはSICPと合わせて読むと面白そう.

gauche-gladeどうしよう

gauche-gladeを考え中.木構造を扱うのでSICP第2章が役に立つかも.let-widgetsマクロはScheme入門が参考になりそう.

Scheme環境整備

最近研究室でSICPの布教活動をしていたせいで,WindowsでSchemeの環境を作るのはどうするのがおすすめなのか聞かれた. 結論: Windowsは捨てよう 結論から言うと,Linuxなどでやった方が幸せだと思う.プログラミング環境はLinuxなどのUNIX系の環境が充実し…

[http://maoe.maoe.googlepages.com/gauche-yahoo:title=SchemeでYahoo!検索Webサービス] 3

また続き.今日は以下の実装をした. 非常に簡単なエラー処理の追加 Gauche-gtkのクライアントを実装(中) Gauche-gtk test-client.scmとして実装中.まだ使い物にならない.Gauche-gtkのアーカイブについてくるサンプルを見てみると,コードがGladeファイル…

gauche-gtkのコンパイルでこける件について

昨日書いたとおり,gauche-gtkを使いたくてもGTK+が新しすぎるためかコンパイルでこけてしまう.こけるのはgtktoolbarのところ.どうしても使いたいのでgauche-gtkのアーカイブを覗いてみた.src/README.hintによると基本的にはどのスタブも自動生成されると…

SchemeでYahoo!検索Webサービス 2

昨日の続き.以下の変更を加えた. gauche.netモジュールでGETしていたのを,より高レベルのrfc.httpモジュールのhttp-getに変更. sxml.ssax,sxml.sxpathモジュールを使って返ってきたXMLを処理するAPIを多少追加. RESTリクエストのオプショナルな引数に…

[http://maoe.maoe.googlepages.com/gauche-yahoo.scm:title=gauche-yahoo.scm]

アップロードしておいた.

毛髪の四季

今日は以前隊長に教えてもらったMITで行われているSICPの講義を収録したビデオを見ていた.教えてもらったときには英語を聞くとじんましんが出そうだったので敬遠していたが,今になって聞いてみると,英語のポッドキャストを聞いているせいか,はたまたSICP…

Schemeで[http://developer.yahoo.co.jp/search/:title=Yahoo!検索Webサービス]

Gaucheで実用的なプログラムを書いたことがないので試してみた.はじめはGoogle Web APIsでWeb検索するためのライブラリを書こうと思ったけど,GaucheにSOAPライブラリがなさそうなのでパス.RESTを使っているYahoo!にした.ちなみにYahoo!は標準でJavaScrip…

PLAI

面白そうな本を見つけた.Programming Languages: Application and Interpretation.PDFで376ページ.ブラウン大学の教科書らしい.どうやらこの本を半期で終わらせる講義をやっているようだ.

Glade + Python/Ruby

以前書いたPyGTKでGladeを使うコードは以下のようにするともっと便利になる. xml = gtk.glade.XML('GladeFileName.glade') xml.signal_autoconnect(dict(inspect.getmembers(self, inspect.ismethod))) [setattr(self, gtk.glade.get_widget_name(x), x) fo…

internal define, letrec, named let

これらはすべて等価と考えていいのだろうか?

末尾再帰のクイックソートつづき

先日のエントリに対してid:nozomさんからトラックバックをいただいた.どうやら先に挙げたページにあるquicksort/cpsのcpsは継続渡しスタイル(CPS)のことだったようだ.調べてみると確かにこのCPSは末尾再帰に変換するときによく使われるらしく,Wikipediaに…

末尾再帰のクイックソート

階乗とかフィボナッチを末尾再帰に書き換えるのはわかるのだけれど,クイックソートを末尾再帰に書き換えるのはどうすればよいのか? ナイーブな実装 Haskellではクイックソートは次のように書ける. qsort [] = [] qsort (x:xs) = qsort [y | y <- xs, y < x…

Javaの柔軟性

Java : Mixin(多重継承)とかパーシャルクラスとか - lethevert is a programmer 手続きを条件で切り替えるという問題 ほかにもSICPの問題がたくさん.これはおもしろい.

ISBN:4274066096:title

買った.図もコードも非常に読みやすくて良い本だと思った.いくつかの例題をD-BUSで書き直したので,あとで書く. 追記 あとで書くメソッドを使ったけど,書く内容を忘れそうなのでメモ.D-BUSのPythonバインディングは__foo__みたいな組み込みのメソッド(…

SICPが面白くて研究が進まない件について

気分転換に187ページからはじまる3.5節「ストリーム」を読んでみた.やっぱり遅延評価は面白い.4章からはオレオレ処理系を作る流れになっているようなので,早くここまで読んで先に進みたい.

Schemeのオプショナル引数

let-optionals*とかget-optionalを使うそうだ.メモ. (define (my-reverse x . y) (let ((acc (get-optional y '()))) (if (null? x) acc (my-reverse (cdr x) (cons (car x) acc)))))こんな感じで使うらしい.

Gaucheでtrace

Gaucheでtraceしたいときにはslibを使う.GentooのslibはなぜかGuileを前提にインストールしているらしく,/usr/share/guile/site/slib/にインストールされる.このためemerge slibだけでは使えない.に従い,`gauche-config --syslibdir`/slib.scmのlibrary…

IoFull-2006-01-04

Ioの新しいバージョンが出ている.ビルドは一応最後まで行くけど,挙動がおかしいところがちらほら.ビルドの失敗なのかコードがおかしいのか.

[http://www2a.biglobe.ne.jp/~seki/ruby/druby.html:title]

dRubyの勉強中. 簡単に気持ちよく書けること Rubyに標準添付されていること ドキュメントが日本語であること などが素晴らしい.CORBAの煩雑さとは大違いである.dRubyの本を発見した.欲しい. dRubyによる分散・Webプログラミング作者: 関将俊出版社/メー…