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

はてなダイアリーのデザイン

やりたいことは他にあるのですが、ぼーっとしてるとこんなところを弄ってしまいます。Deltaスキンも良かったのですが、Firefoxで見るとやはり粗が。 最近はFirefoxなのですが、Firefox上でスタイルシートを作成してからIE6で見てみると:afterもcolor:inherit…

gcc 4.0.2

4.0.0以降のAdaのパッチは全部4.1.xのみに適用されていて、何も変わっていないのは知ってはいますが、一応コンパイルはしてみました。 gccのmakeは、sedとかawkとかパイプとか使い過ぎと思います。いやもうconfigureに関係ないものは毎回生成させずにあらか…

PATHリスト

ぼつぼつなにかやってみるかな、ということで、環境変数PATHをセミコロンで分割して表示するだけのスクリプトを書いてみます。 なんでこんなお題かといいますと、ソフトのインストール時に変なPATH追加されていないか確認したり、新しくPATHを通すときにどの…

シリーズ

>> a: [x y z] == [x y z] >> b: a == [x y z] >> b: next b == [y z] >> a == [x y z] >> append a 1 == [x y z 1] >> b == [y z 1] ブロックは参照で保持され、append等で書き換えるとコピーオンライトなどはなされずに波及します。で、各変数は、ブロック…

オブジェクトモデル

プロトタイプベース…なのか?いや違う。 新しいオブジェクトは、makeで、クローン元か型?を指定して作成します。あくまでクローンであってプロトタイプを参照しているのでは無い様子。クローン元を変更しても追従しません。 型?はdatatype!のインスタンス…

Rebolで書くRebolコンソール2

REBOL [] forever [ error? error: catch [ if error? error: try [ set/any 'it do ask system/console/prompt if value? 'it [prin system/console/result probe :it] ][ throw error ] ] if error? error [ error: disarm :error use [type msg][ type: e…

C++0x

C++

新バージョンの年の下一桁を埋めておく文字は何故C/C++はxでAdaはyなのか、という疑問はさておき*1C++に疎い小生かなり時代遅れでC++の改定の話を知りましたのでメモを残そうとしたら、これがいつもの癖で好き勝手書いてみたくなりましたので書きます。 墓下…

RebolコンソールをRebolで記述

Rebolのコンソールウィンドウは便利といえば便利なのですが、コマンドプロンプト上で動くインタプリタが欲しい気分のときもあります。 eval相当のdoがあるのですからあっさり書ける…と思いきや。 REBOL [] take1: func [x y][x] forever [ prin ">> " a: inp…

風来日記

はてなダイアリーはリファラを詳細に記録してくれているが故に、d.y.d.からのアクセスが急増しているのもわかってしまって、脇に逸れるのがプレッシャー…。それでも逸れるのが人間だ。そうに違いない。 もう何年も経ってしまいましたが、GB版の風来のシレン2…

Ada2005対応のgnatelimのつくりかた

Ada

https://libre2.adacore.com/からasis-gpl-2005-src.tgzをいただいてきて、gnatディレクトリの中身をgcc-4.0.1のものと置き換えて、あとversion.oを加えて、gcc-4.0.1でmakeしたらできあがり。 AdaCoreのGNATの変化がgccのGNATに反映されていく度合(あるいは…

Dynamic Interface (or Strong "Duck Typing")

http://d.hatena.ne.jp/lethevert/20050922/p1 ダウンキャストを、後付けinterface→元々のオブジェクトが持っているinterface、に限定すれば、TAggregateObjectで可能ですね。Objectから任意のinterfaceを生成する元々のVB9のサンプルとは全然違うという話は…

関数を受け取る関数

いわゆるdownward closure、ラムダ式、高階関数、云々。こちらは手続き型言語でも最近のものではもはや当たり前ですね。 >> twice: func [x][x 1 x 2] >> twice func [x][print x] 1 2 なお関数の形を取っていない単なるブロックも、doで実行できます。 >> d…

関数を作る関数

手続き型言語では(template等抜きに)素直に実現するには)スタックポインタの都合で不可能ですが、関数型言語ではとてもおなじみ。カリー化もこの類。 You should avoid using variables that are local to the top level function as an unevaluated part of…

関数定義

functionとfuncとdoesがあります。 >> sign: function [x][r][either x > 0 [r: +1][either x > sign +100 == 1 >> sign -100 == -1 >> sign 0 == 0 >> sign2: func [x][either x > 0 [+1][either x > sign2 +123 == 1 >> sign2 -9999 == -1 >> sign2 0 == 0…

どこからどこまでが引数なのでしょうか

次は関数呼び出し。 括弧が不要ですので、引数がひとつだけのときは順番に係っていくので明白ですが、引数がふたつ以上あるときの係り受けがどうなっているのかは当然の疑問でしょう。 >> join join "abc" "def" "ghi" == "abcdefghi" 簡単に言えば正ポーラ…

1+1…あれ。

1+1をやってみましょう。 >> 1+1 ** Syntax Error: Invalid integer -- 1+1 ** Near: (line 1) 1+1 >> 1 + 1 == 2 演算子もまた識別子扱いですので、空白が必要です。 ならば。 >> ++: :+ >> 1 ++ 1 ** Script Error: ++ expected value2 argument of type: …

なんでもかんでもブロック

Rebolは、Lispが全てS式のように、全てがブロックで、コードもデータも区別がありません。スクリプトファイルも一番外側に [ ] がある扱いだそうです。 ブロックには各種の値と単語が並ぶことになります。 予約語はもちろん存在しません。 単語の扱いは四種…

GNAT 2005 GPL Edition 調査

Ada

いつものやつ。 項目GNAT 2005gcc 4.0.1 not null access○○ 匿名のaccess変数○△ 匿名のaccess引数○○ 匿名のaccess返値○× for access型'Storage_Size use 0;○× downward closure○○ overriding明示○× interface○× Object.Method形式の呼び出し○△ 拡張return文×…

ワンライナー

前項で改造したコンソールアプリケーション化rebol.exeをコマンドラインから呼びます。 ...>rebol -wq --do "print read http://google.com/" -wはウィンドウを表示しない。-qは余計なものを表示しない。 他にもセキュリティ無視の-sとか、CGIモードの-cなど…

実行環境

Rebolの実行環境には、最小限のRebol/Coreと派手派手なRebol/Viewがありますが、…Rebol/Viewはちょっとだけ入れてみましたところ正直言ってケバイのでRebol/Coreを選択します。 Windowsで動くRebol/Coreの最新版はrebol031.exeですが、これがwinhugsのように…

Revolution in Rebol

k.inabaさんの月替わり企画風に、Rebolやります。*1 実際はいつものように素人の挑戦記録となりHaskellやDの時同様後から<del>タグ入れまくると思いますので、間違いなどありましたら指摘いただければ嬉しいです。 さて、Rebolとはどんな言語かといいますと…本家</del>…

GNAT GPL 2005 Edition

Ada

おー。3.15pから数年ぶりにGNATパッケージの新版が出る模様。 http://libre.adacore.com/ 今月中ですかー。 gccはいつのバージョンがベースになるのでしょうね。 4.x.x系列とAda2005に対応したASISが付いてくれば万々歳。 https://sourceforge.net/projects/…

Pliant

たまに比較記号が"="で文字列中のエスケープが"\"以外の、要するにCに悪影響を及ぼされていないスクリプト言語を探すのですが、滅多には見つからず。 それでも今日はこんなのを見つけました。 http://fullpliant.org/ …が、実行のさせ方がわかりません。アー…

真魚配列試用実態

Key

いつの間に…。 …数日ぐらいはまともに使ってみたのですよ、三日ぐらいは。三日坊主とも言う。 自分で言うのもなんだかなあですが、なんといいますか、魅力の無い配列です。 狙いどおり手は動かさずに打てるのですが、交互打鍵が途切れる度に詰まるわ、右手の…

委譲とカプセル化

ひとりごとですのでトラックバックは無しで。 お題は既にIWriterとその実装クラスがあってTPrinterでそれが丸利用できるとしたら(らしいです)。 ... type TPrinter = class(TDevice, IWriter) private FWriter: TWriter; property AsWriter: TWriter read FW…

いつのまにやら新機能が…

再度http://d.hatena.ne.jp/soutaro/20050903/1125679889 とはいえ、私はDelphiでプログラミングしたことはないので、もしかしたらDelphiではそうする(Viewに対応するインタフェースを定義しておいて、モデルではそれを実装する)ことが妥当なのかもしれませ…

TTreeViewの使い方

http://d.hatena.ne.jp/soutaro/20050903/1125679889恐らく同じ想定と思うのですが、TTreeViewの使い方って、 表示されているものが全て。ある意味ラジオボタンの代わり。設定ダイアログのタブの代わりに使われている例も。シリアライズ可能。 TTreeNodeがノ…

徒歩徒歩

自転車がまた壊れててですね、ひたすら歩いてるわけですよ最近。 残暑蒸し暑くて素敵ですよ…。

今度は手短に

http://d.hatena.ne.jp/lethevert/20050902/p3 細かいことは後回しにして、一点だけ。 インターフェースをインプリすれば、描画コンポーネントにはまりますということよりも、描画コンポーネントにべったりのデータの方が、複数言語間の変換がらくだというの…

VCLのつくり…別題「我ながらよくもまあこんなにだらだらと書いたもんだ」

経過。 http://d.hatena.ne.jp/lethevert/20050829/p5http://d.hatena.ne.jp/lethevert/20050831/p3http://d.hatena.ne.jp/soutaro/20050901/1125614439http://d.hatena.ne.jp/lethevert/20050902/p1http://d.hatena.ne.jp/soutaro/20050901/1125621086 VCL…