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

モジュール関連

gosh> (current-module) #<module user> gosh> (module-precedence-list (current-module)) (#<module user> #<module gauche.gf> #<module gauche> #<module scheme> #<module null>) Builtin Module: null このモジュールはR5RSで述べられている"null environment"に相当します。 R5RSの構文要素への束縛だけを含んだモジュールです。 Builtin Modul</module></module></module></module></module></module>…

quickrun.vim

vim

バッファ上のソースコードを実行 - MEMO:はてな支店 今後の課題 実行結果を分割ウインドウに出せるといいなあ http://d.hatena.ne.jp/katona/20070723/1185200165 と書いたままほったらかしにしている間に、この課題を解決+αしているものを発見。 Vim-users…

コロン

「:」をdefineしようとすると以下のエラーになる gosh> (define : cons) *** ERROR: Compile Error: syntax-error: (define : cons)R5RSには以下のように書いてある。 拡張アルファベット文字は、識別子の中で文字のように使用することができる。拡張アルフ…

QiII

Haskellの型推論が邪魔だった俺にはこれいいかも。 2. Lisp じゃなくて Qi で書く事の利点は何? * Qi II は CAR / CDR を強制しない。かわりに、パターンマッチを使う事ができる。典型的な Qi プログラムは Lisp プログラムと比較して非空白文字が40%程度に…

数式パーサその2

中置演算子とHaskell風の関数呼び出しをパースする処理をSchemeで書いてみた。 例えば以下のサンプルを実行すると11と6を表示する。 ( ~ a = 2 ~ b = a + 1 ~ print (a + b * 3) ~ fact n = n == 0 and 1 or n * fact (n - 1) ~ print (fact b) )実際には、…

キーワードメッセージを括弧付きに

SmallTalk R4.1のつくりかた。ロングバージョン キーワードメッセージを括弧付きに、というネタも '12345' copyReplaceAll: '123' with: 'ABC' '12345' copyReplaceAll('123', 'ABC') http://www.smalltalk-users.jp/Home/gao-zhi/dai8kaismalltalkbenkyouka…

引数名と同じスロットを用意するコンストラクタ

関数の引数名と同じスロットを挿入するinitメソッドを作ってみた。 Function.prototype.init = function(obj,arg){ var slot = this.toString().match(/\(([^)]*)/)[1].split(/, /); for(var i=0;i

Britain's Got Talent

スーザン・ボイル - Wikipedia 2009年4月11日、イギリスのオーディション番組「Britains Got Talent」第3シーズンの初回に出場 この番組の模様がYouTubeなどの動画配信サイトに転載されると、1週間で4300万回を超える視聴回数を記録し、海外からも注目された…

Functionコンストラクタの遅さ

関数式と関数宣言で定義された関数は一度しか解析されませんが、Function コンストラクタで定義された関数はそうではありません。 つまり、Function コンストラクタに渡された関数本体を表す文字列が、評価されるたびに必ず解析されます。 関数式は毎回クロ…

引数なしの関数呼び出しと変数参照

JavaScript Scheme Haskell Ruby 2引数 f(x,y) (f x y) f x y f x,y 1引数 f(x) (f x) f x f x 0引数 f() (f) なし f 関数本体 f f f Kernel.method(:f) JavaScriptは後ろに括弧があるかで区別する。 Schemeは括弧でくくられているかで区別する。 Haskellに…

UTF-16にあってUCS-2にないもの

110110xx yyyyyyyy U+D800〜U+DBFF サロゲートペア上位 110111xx yyyyyyyy U+DC00〜U+DFFF サロゲートペア下位 11111110 11111111 U+FEFF バイト順マーク (BOM) なお、U+FFFEはBOM誤判定用に予約されており、UTF-16でも定義されない。

Gofer

Gofer Haskellの教育的バージョン。 GoferはMark Jonesにより開発された。これはHugsに取って代わられた。 http://ja.wikipedia.org/wiki/Haskell 単なる教育用の簡易版かと思っていたら、かなり先進的なプロジェクトだったんじゃないか。 HugsのgもGoferのg…

SmallTalk R4.1

東京のSmalltalk勉強会では、VisualWorksとSqueakの両方を対象に進めているのですが、どうにも微妙な違いが多く、学習の妨げとなっていました。 もっと誰もが簡単に使える、パワフルな処理系はないものか、と思っていたところ、SmallTalk R4.1なるものが存在…

SICM

Sussman は SICP の他に SICM という古典力学の教科書も書いてたとは。 Structure and Interpretation of Classical Mechanics : wrong, rogue and log Gerald Jay Sussmanと、惑星物理学者のJack Wisdomが書いた古典力学の本である。MITの古典力学の講義の…

Java並行処理プログラミング

Amazon.co.jp: Java並行処理プログラミング ―その「基盤」と「最新API」を究める―: Brain Goetz, Joshua Bloch, Doug Lea: 本 何しろ、J2SE 5.0のjava.util.concurrent.* を開発した人が書いた本ですから… http://www.amazon.co.jp/dp/4797337206 こんな状…

DINOR型

DIって何の略かと思ったら、Divided bit lineのことだったか。 NOR型フラッシュメモリとは - 意味・解説 : IT用語辞典 NOR型のこうした欠点を抑えた三菱電機のDiNOR型フラッシュメモリ(Divided bit line NOR)が注目されている。DiNOR型フラッシュメモリはセ…

検索エンジンの手動追加

Firefoxでもxpiを使わずに設定を追加する方法があった。 Firefoxの検索バーをカスタマイズする方法 検索プラグインの手動追加と一括複製Windows 2000/XPの場合、Firefoxに組み込まれたWindowsアカウント別の検索プラグイン(XML)は、 C:\Documents and Sett…

改行をつめる

javascript:document.body.innerHTML=document.body.innerHTML.replace(/(<br>)+/gi,"$1");focus()ここのサイトをこんなかんじで読みたかったので。 祝|ダルビッシュ有オフィシャルブログ「Thoughts of Yu」Powered by Ameba 同点になったときはどうなるかと思…

簡易表計算

Wordにも表計算機能があると聞いたのでやってみた。 表の挿入 ツールバー→表の挿入→適当なセル数を選択 計算式の入力 罫線→計算式→適宜計算式を入力→OK =sum(left)のような例が出ているが、Excelのように、=a1+b1 や =sum(a1:c3) 等のセル参照も可能 ソース…

preg_match_allはPREG_SET_ORDERで

PHP

フラグを省略する(デフォルトはPREG_PATTERN_ORDER)と$rは以下のようになるので使いずらい。 preg_match_all('/(.)(.)/','abcd',$r) $r→[ ["ab","cd"], ["a","c"], ["b","d"] ]$rを以下のようにするにはPREG_SET_ORDERを指定する preg_match_all('/(.)(.)/',…

QUERY_STRINGとcookieのパース

例えばアクセス時のURLが http://aaa/bbb.html?x=1&y=%CE%B1だったとして、 location.search.parseQuery()とすれば、 {x:"1",y:"α"}が返ってくる。 中でdecodeURIComponentをしてくれてるので、ちゃんとデコードされてる(ただし、UTF-8決めうち)。 なお、par…

CoqとAgda

CoqはOCamlで書かれているようだ。 To compile Coq, you need: * Objective Caml (3.07 ? version but 3.08.0). http://coq.inria.fr/distrib1-eng.html AgdaはHaskellで書かれているようだ。 Agda: Instruction(Mac) Q: Agda doesn't work suddenly. A: Did…

US配列とJIS配列

US配列はASCII配列とまで呼ばれるのになぜシフトキーの機能がASCIIと対応していないのか。 一方で、なぜJIS配列ではシフトキーの機能がASCIIと対応してるのか。 タイプライターペアリング(タイプライタ配列、US配列、米国配列、英語配列) 電動英文タイプラ…

オフサイドルールの処理

「Haskell パーサ」で検索すると、Parsec等のHaskellでパーサをつくる話ばかり出てきて Haskellのようなパーサをつくる話はみつけられなかった。 「オフサイドルール パーサ」で検索したら、以下のページが見つけられた。 ざっくり説明すると,字句解析は要…

ラムダ文字の由来

Lisp で匿名関数を lambda と書くのは以下のような由来らしい。 Russel と Whitehead の Principia Mathematica では束縛変数の上にキャレットを置く書き方をしていた Church がその記法を ^x(x+x) と変えた キャレットの下に何も無いのが変だと思ったので形…

プログラミング言語Cyan

非S式の構文にLispのマクロを導入した言語です。 ブロックはインデントによって表されます。 インスタンスベース・オブジェクト指向や継続といった概念が含まれています。 http://www.geocities.jp/takt0_h/cyan/index.html U-20プログラミング・コンテスト…

電話機のアルファベット

@ ABC DEF GHI JKL MNO PQRS TUV WXYZ 1のキーを無駄にしているからPQRSとか4文字無理矢理詰め込む場所が出てきてる。 ABC DEF GHI JKL MNO PQR STU VWX YZ_ こっちの方がすっきりしてよかったと思うのだが。なぜあんな変な配列になったんだろう? 英字入力…

returnを関数と思ってみる話

要旨: 「"call/cc" って難しいので、 継続のプリミティブは "return" ということにしよう。特に手続き型言語では」 実際、"first-class return" があれば first-class continuation でできることは全てできます。 Scheme, Ruby 等で継続を取り出すプリミテ…

本文中のCSSの指定

body クラスの中の section クラスの中と指定すればいいらしい。 手順としては「管理」-「デザイン」で表示される画面の「スタイルシート」の欄に記述をすれば良いみたいです。 teble タグの位置は body クラスの中の section クラスの中の table タグなので…

tableの境界線

CSS

<table border>となってないtableにとりあえず境界線をつける。 td,th{border: 1px solid black;} table{border-collapse: collapse;} borderをtable要素に指定した場合 表の大枠に境界線が付きます。borderをtd要素とth要素に指定した場合 各セルに境界線…