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

Ruby 以外に module 機能のようなものがある言語ってあったっけ?

だいありー[霜月-5(Sun)] より。 ということで私も興味を持ったので、 Smalltalk 処理系のひとつで Ruby と大変よく似たタイプのミックスイン機構を持つ Strongtalk で試してみました。結果、現時点での Ruby 1.9 の挙動と同じであるようです。 関連:Squeak…

“SEND + MORE = MONEY”問題を解く 2

id:sumim:20061027:p1 の続き。いくら遅いマシンでも、Gauche や SWI-Prolog が十数秒〜数十秒で返してくるものを 10 分とは待たせすぎだろう…ということで、どこで時間を食っているのか調べてみました。まず手始めに、単純に 0 から 9 までの数字から 8 個…

“SEND + MORE = MONEY”問題を解く

HaHaHa! - 覆面算汎用ソルバ より、覆面算クイズを解くコードを Squeak の Smalltalk で。速度的にはまったく使い物にならないのですが、Haskell 版の汎用性(SEND + MORE = MONEY 専用ではない…)と、Shiro さんの Gauche 版 における文字列を介することに…

Ruby との文字列操作の比較

毎度お呼びでないことは重々承知の助なのですが…(^_^;)。前回同様、いやなブログ: 文字列操作の比較表: Ruby, Python, JavaScript, Perl, C++ に便乗して、Squeak の Smalltalk における文字列操作の紹介をさせてください。 Ruby(String) Squeak の Smalltal…

Rubinius, ザ・ハードコア Ruby ...

mputの日記。 - RubyConf2006 “Sydney and Rubinius: Hardcore Ruby” by Evan Phoenix より。 端的に言えば、Ruby をもっとシンプルに、Smalltalk っぽく(もちろん、文法とかの表層じゃなくて…仕組みを)する試み、について。 Ruby は面白い言語だと思うの…

Ruby の特異クラスの“振る舞い”のナゾ

前回の、Smalltalk の世界観に影響を受けた言語ではクラスもオブジェクトであらんとする…的な話の続きのような、そうでないような(^_^;)。 Java のクラス同様、Ruby のクラスもオブジェクトで、すべてのクラスは(やはり Java と同じ…)「Class」という名の…

Java や Objective-C におけるクラスの“振る舞い”で驚かされたこと

タイトルのとおりの印象を持ったのをきっかけにして、Java や Objective-C の勉強を兼ねて調べてみたことをメモ。三猫さんと odz さんとのやりとりを見ていて、ちょっと関係することもあるかな…とも。 Smalltalk のクラスの“振る舞い” よく言われるように、S…

動的性が Ruby の遅さの原因?

引き続き、Strongtalk ネタ。Smalltalk Tidbits, Industry Rants - Explaining the Nature of Reality 経由で。 HREF Considered Harmful - Ruby and Strongtalk Joel on Software でジョエル・スポルスキーが、Ruby の遅さの原因は動的結合、動的型システム…

Sun が Strongtalk を(仮想マシンを含め)オープンソースに

planet squeak 経由で、The Hitchhiker's Guide to ...: Sun release Strongtalk VM into OpenSource より。 Strongtalk というのは、1990 年代半ばごろに発表された(オプショナルな)静的型チェック機能を持つ Smalltalk の実装です。静的型チェック以外に…

Smalltalk におけるシンボルの振る舞い

すべての話題をSmalltalkに結びつける名人 の称号(違う)をいただいたからには、nil.to_s と同じくらい Ruby の開発者向けメーリングリストで盛り上がっている、シンボルの仕様変更についても言及せねばなりますまい。…と思ったのですが、これについては以…

LL Ring の動画

LL Ringの動画配信開始 ― Lightweight Language Ring によれば、ソフトバンク ビジネス IT にて、表題のものが公開されたようです。梅澤さんと南谷さんの Squeak のデモもバッチシ。 【ストリーミング】 LightweightLanguage Ring −Blood Sweat & Code14 Squ…

Smalltalk の nil とその振る舞い

Ruby の開発者向けのメーリングリストや、2ちゃんねるの関連スレで、nil の文字列化(あるいは文字列型への変換)に関する仕様変更についての話題で、いつになく活発に議論が展開されているのに触発されたので、Smalltalk の nil やその振る舞いについて、R…

Mac のスクロールバーはいかにしてできあがったか (改訂版)

GUI

あるいは、両端の矢印+スクロールボックスからなる、現在主流のスクロールバーへの進化の道筋…というような話。※2017-01-25: ContrAlto という ALTO シミュレーターと現存する当時のディスクパックの内容を保持したディスクイメージを使うことで、ジョブズ…

各要素が「0または1をとる乱数」から成る長さnのリスト

勝手にどう書く0.0 より。 (1 to: 10) collect: [:i | 2 atRandom - 1](1 to: 10) collect: [:i | #(0 1) atRandom](1 to: 10) collect: [:i | 'ACGT' atRandom] use や import がいらないのが Scheme や Python に対して、Smalltalk のよいところでもあり、…

「Collatz予想」(角谷予想,3x+1問題)のお題を CLOS で

前のエントリーでやっていることを CLOS の「補助メソッド」で。しかし、こうもシンプルに書けてしまうと、なんだか、f をありのまま定義して手つかずにすることへの脱力感が際だちますね(^_^;)。 (defmethod f ((n integer)) (cond ((= n 1) 1) ((evenp n) …

「Collatz予想」(角谷予想,3x+1問題)のお題を AspectS で

前回、いろんな変な処理系で書き散らかしてしまったのを反省したばかりだったのですが…。つい、また。w f の定義を記述してから、同じような g を、しかし、今度はステップ数を出力するように再び記述しなおすのは何か違うよな…と感じたとき、ふと思い出し…

「Collatz予想」(角谷予想,3x+1問題)のお題を Squeak の Smalltalk で

キミならどう書く 2.0 - ROUND 2 - ― Lightweight Language Ring を受けて。前回、いろいろな(変なw)処理系でさんざん書き散らかしてしまったのを反省して、今回は、知らない人でも Smalltalk がどんな言語だかが分かるように、オーソドックスなのをひと…

ライブラリが使いやすくリッチだったら言語能力が貧弱でもなんとかなる

檜山正幸のキマイラ飼育記 - あなたの「極小なプログラミング言語」は? より。 プログラミング言語をうんと小さくするのは、ライブラリのほうにフォーカスしたいからなんです(僕の動機は)。ライブラリが使いやすくリッチだったら言語能力が貧弱でもなんと…

「再起動」すら死語になるかも知れないのだ

404 Blog Not Found:21世紀のコアメモリーより。 そんな時代のソフトウェアがどんな風になるのか。夢がひろがりんぐというものだ。 ちょ、それ、Smalltalk システム…(aka、ALTO で動いていた暫定的ダイナブック環境)。www って、立て続けにこんなのばっ…

Smalltalk は全然好きじゃないが、この人の言ってることはまったくもって正しい

「アラン・ケイが描くパソコンの未来像」を読んでの Kuwata Chikara さんの感想より。> だから今後必要になってくるのは分解できるソフトウェア (ということはフリーソフトウェアであることは前提条件だ) ってことになり、最大多数の人が分解可能であるため…

アラン・ケイ at EuroPython 2006 2

id:sumim:20060704:p1 の続き。グイド・ヴァンロッサムのブログでの言及も見つけました。 All Things Pythonic: "Alan Kay's EuroPython Keynote - Children First" by Guido van Rossum デモンストレーションがすべてブラウザプラグイン内で行なわれている…

マルチウインドウの起源は FLEX マシン?

GUI

アラン・ケイが描くパソコンの未来像 前編 ― 失われた13年を繰り返さないために 中編 ― Webの技術進歩は遅々として進まず 後編 ― 刹那的文化がすべての大人を愚か者に 小難しい話は分からないので(コラ…)、そちらは本編を読んで判断していただくことにして…

アラン・ケイ at EuroPython 2006

以前から、id:squeaker さんこと おおしまさんの日記にて言及があったように、アラン・ケイ博士が EuroPython 2006 のキーノートに登場…とか。 http://d.hatena.ne.jp/squeaker/20060703#p1 先だっての Ruby コミュニティとの接触に続いて、今度は Python に…

100までの整数から素数を列挙せよ…を bitblt で

bitblt というのは、bit-boundary block transfer(bit-field とも)の略で、その名の通り、画像表示処理などの際に行なうビットブロック転送操作、あるいはその実装を指します。BitBlt、あるいは、BitBLT とも(Smalltalk のクラス名としては BitBlt)。も…

100までの整数から素数を列挙せよ…を Squeak の eToys で

eToys でも id:squeaker さんの Kedama(毛玉)を使って書いてみました。Kedama は、端的には、複数のタートルを同時に使って描くタートルグラフィックス・システムです。 Kedama: A massively-parallel tile-scriptable particle system 誰もが気になる名前…

クロージャでカリー化

おそらくは 404 Blog Not Found:Haskellは難しくない--こともある。 がらみで、クロージャとカリー化で検索訪問(?)をいただいたようなので…。 Smalltalk でも Ruby と(メソッド [] を使えないことを除いて)原則として同じく、“直感的”でない方法(^_^;)で行…

エラトステネスのふるいをコンパクトにする方法

関連エントリー: 100までの整数から素数を列挙せよ…を Squeak の Smalltalk でSmalltalk のオーソドックスな方法で。 100までの整数から素数を列挙せよ…を Smalltalk-76 でSmalltalk の祖先で。 100までの整数から素数を列挙せよ…を Smalltalk-72 でSmallta…

100までの整数から素数を列挙せよ…を Smalltalk-72 で

悪ノリして、今度は 1974 年からのエントリー。当時の ALTO のフォントとウインドウで。このころの暫定ダイナブック、すなわち“ Smalltalk を OS として動作する ALTO ”のウインドウは、オーバーラップ表示こそ可能でしたが、まだ、簡素な矩形を描いただけの…

100までの整数から素数を列挙せよ…を Smalltalk-76 で

1977 年から、時空を越えてのエントリー。w "Smalltalk-76" limit ← 100. primes ← #() asStream. primes next ← 2. for% i from: (3 to: limit by: 2) do% [ isprime ← true. for% prime from: primes contents do% [ i \ prime = 0 ? [isprime ← false]].…

100までの整数から素数を列挙せよ…を Squeak の Smalltalk で

「100までの整数から素数を列挙せよ」:キミならどう書く 2.0 - ROUND 1 - ― Lightweight Language Ring まずはお約束から。 Integer primesUpTo: 100=> #(2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97) 愚直に。 (2 to: 100) s…