Squeak

#findToken:keep:

rubyco(るびこ)の日記 - コンマ区切りの文字列を逆順に を Squeak の Smalltalk で。 最初、任意の区切り文字を指定してトークンを切り出す #subStrings: を使えばいいのかな…と思ったのですが、これだと最後のカンマはともかく、途中の空欄も消えてしまい…

文字列より、指定した文字が見つかった位置と総数を報告

ふたたび ときどきの雑記帖 リターンズ - ここまでくると より、ネタをお借りして。 オーソドックスなループ版。 | string index count searchChar | string := 'I love cat and dog'. searchChar := $a. index := 0. count := 0. World findATranscript: ni…

平均と分散

ときどきの雑記帖 リターンズ - 平均と分散 を Squeak の Smalltalk で。Ruby と違って 平均を算出する #average が組み込み(?)で用意されているので、分散だけ計算させます。すでに課題のことは眼中にありません。あしからず。w | random data average var…

Dynamic Object-Oriented Programming with Smalltalk

http://www.iam.unibe.ch/~scg/Teaching/Smalltalk/ Squeak3.9 でクロージャを扱えるようにするための機能拡張パッケージ、NewCompiler と AST のことを調べていたとき、こんなページを発見しました。Smalltalk と銘打っていますが、Squeak(の Smalltalk)…

Squeak3.9 でブロッククロージャ

3.9 の宣伝で(オプショナルながら)クロージャをサポート…みたいなことが書かれているのを見かけたので、どんなふうかと試してみました。いろいろと調べてみた結果、どうやら、SqueakMap 経由でインストールする必要があるらしく、3.9 で云々というのは、ち…

Squeak3.9 ではワークスペース変数の自動登録がオン/オフ可能に

いじっていて気が付いた 3.9 のちょっといい機能 その1(って、続きがあるかわかりませんが…) ワークスペース変数は、その名のとおりワークスペースで使うことができる変数で、グローバル変数の一種です。ワークスペースで評価したコードに含まれる変数の…

Squeak3.9-final-7067 を自分好みにするためのメモ

Squeak-dev をほとんど追っかけていないせいもあって、知らないうちにファイナルになっていた 3.9 。いろいろと(おそらくたいした理由があってかなくてか…w)変えられてしまって気にくわないところもいくつかありますが、ちょっといじったかんじ、まあ 3.8…

Haskell Bowling を Squeak の Smalltalk で 2

The Log of the No22 - ボーリングのスコア計算 を拝見していて、短けーっとか思いつつ、ああ… size = 1 の条件分岐はいらねーな…と遅まきながら気づかされたりしたので少し整理するようにして書き直し。必然的に Sukuna 版の直訳気味に。 Squeak の Smallta…

「アジャイルソフトウェア開発の奥義」のボウリングスコア集計

Haskell で Bowling Score - An Agile Way [ITmedia オルタナティブ・ブログ] で言及されている「アジャイルソフトウェア開発の奥義」のボウリングスコア集計の例を、Squeak の Smalltalk で直訳気味に。 TddBowlingScore.cs えーと。念のため、.cs ですが C…

Haskell Bowling を Squeak の Smalltalk で

XProgramming - XP Magazine - Haskell Bowling #(0 0 10 8 2 10 10 10 5 3 8 2 10 10 10 10) bowlingScore " => 201 " まずは Haskell 版を直訳ぎみにして、それからヒネリを入れてみよう…と思ったのですが、もとがあまりにシンプルで代替え案が思いつかな…

ITpro の「関西オープンソース2006」レポートに Squeak 登場

コミュニティが育てる・作る言語,フレームワーク,ERP,SNS---「関西オープンソース2006」レポート:ITpro Squeak-ja の展示内容について比較的くわしく書かれています。こうしたメジャーなメディアへの露出はいつも嬉しいですね。今が旬の 100 ドル・ラッ…

自分が自身のクラス(あるいはインスタンス)であるようなオブジェクト

Ruby では Class 。Smalltalk ではどうか。 | results | results := OrderedCollection new. SystemNavigation default allObjectsDo: [:obj | obj class == obj ifTrue: [results add: obj name]]. ^ results asArray=> #()ありません。ただ、自身のクラス…

メソッドがどのクラスで定義されているかを調べる直接的な方法

再開(?)後、みょーにリフレクションづいている rubyco さんに影響されて Squeak の Smalltalk でどうなっているのか調べてみました。 追記:コメント欄にて nurse さんが暗にご指摘のとおり、おそらく、rubyco さんのおっしゃっておられる意味あいのものは、…

矩形の四頂点に対応する座標を『コ』の字状に並べ替える

富豪的に。 | vertices center pi thetaOf | vertices := {100@100. 200@100. 200@200. 100@200} shuffled. "任意順に与えられた四座標" center := (vertices min + vertices max) / 2. pi := Float pi. thetaOf := [:point | ((point - center) theta - pi)…

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

id:sumim:20061106:p1 の続き…というより、オマケ? Ruby や Strongtalk のものとはセマンティックスを異にしますが、Squeak システムにおいて 3.9(起動するには別途 Squeak VM と SqueakV3.sources が必要)より採用されることになったミックスイン機構で…

“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…

LL Ring の動画

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

各要素が「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問題)のお題を AspectS で

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

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

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

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までの整数から素数を列挙せよ…を 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…

Ruby で Smalltalk の #with:collect:

rubyco(るびこ)の日記 - zipWithの自作 と もち - 今日の自作関数 にて、Ruby で Haskell の zipWith を自作しよう…という話。 Haskell の zipWith と似たような動きをするメソッドを Smalltalk で探すと、#with:collect: が見つかります。Squeak システム…

re: re: 代入とメッセージング

id:sumim:20060602:p1 で、(少なくとも“ケイのオブジェクト指向”に立脚して Smalltalk を利用する際には)「すべてはオブジェクト」というよりは「すべてはメッセージング」であることを意識すべし…という話をうけての、結城さんの、 sumimさんの「すべてが…