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

「直方体の重なり」を Squeak Smalltalk で

http://rocketnews24.com/2011/12/28/168284/ http://www.sony.co.jp/SonyInfo/Jobs/newgrads/sus/go_for_it.html おもしろい。やってみよう。 この例題のような仕様の直方体の場合、二つに重なりがあるかは、X-Y 平面、X-Z 平面 Y-Z 平面への投影図(ふたつ…

ボウリングスコア集計の条件分岐記述にひとひねり(あるいはバッドノウハウ)を入れる

TDDBC 札幌 2.3 で遊びで書いてみたボウリングスコア集計 @snoozer05 のボウリングスコア集計 Ruby 写経版を Squeak Smalltalk に逆翻訳 最後のこれは記述の簡潔さと読み下しのしやすさを兼ね備えていてなかなかよさげなのですが、条件式のネストがちょっと…

@snoozer05 のボウリングスコア集計 Ruby 写経版を Squeak Smalltalk に逆翻訳

sumim さんのボウリング集計のコード(http://d.hatena.ne.jp/sumim/20111214/p1)を Ruby で · GitHub @snoozer05 なるほど。Ruby にない PositionableStream の動きは配列とカーソルの組み合わせで再現しましたか。すばらしいですね。 @sumim 12月15日 とい…

TDDBC 札幌 2.3 で遊びで書いてみたボウリングスコア集計

TDDBC 札幌 2.3 札幌名物の Smalltalk ペアとして、@t_hachinoheさんと組んで楽しく参加しました。TDD の演習の成果物としてはちゃんとオーソドックスな実装をしたのですが、それとは別に、http://xprogramming.com/xpmag/dbcHaskellBowling でリストを切り…

Python Quiz of the Week - #1 を Squeak Smalltalk で

Find the longest words in a dictionary of legal words that can be constructed from a given list of letters.Your solution should take as its first argument the name of a dictionary file, which will be plain text with one word per line. The …

Google Nexus チャレンジ #1 を Squeak Smalltalk で

Challenge 1: http://goo.gl/H5jUh. Androids bring a message to you! @googlenexus Submit Challenge 1 response as: "#GalaxyNexus is well-traveled, coming to @googlenexus from [answer]" Rules: http://goo.gl/5dpAK @googlenexus A googol of respo…

竹内関数で音楽生成を Squeak Smalltalk で

竹内関数で音楽生成 - aikeの日記 自動でアルペジオとか付かないので、リンク先の演奏よりは間延びしますがそれでもついつい聴き入ってしまいます。tarai でブロックの再帰を使っていますので、Squeak4.1 以降でお試しください(例えば Squeak4.2-ja-all-in-…

再び MagLev と Matz Ruby (Ruby1.8)、YARV(Ruby1.9)を戦わせてみる

MagLev 1.0.0 リリース記念。 MagLev is a fast, stable, 64-bit open source implementation of the Ruby programming language and libraries built on top of VMware’s GemStone/S 3.1 Virtual Machine.The MagLev VM takes full advantage of GemStone/S…

BuzzFib をネタに Squeak Smalltalk で遊ぶ

FizzBuzz は時代遅れらしいので FibBuzz はどうでしょう - cod.note 自分としては FibBuzz より BuzzFib のほうがネタとしては断然おもしろいのでこちらを。 BuzzFib: 1から数を列挙していく.それがフィボナッチ数ならFib, 5で割り切れるならBuzz, その両方…

トレイトを使った FizzBuzz を Squeak Smalltalk で

2011-10-08 に触発されて、いつもどおり何周目かの FizzBuzz に今回は Traits というのを使って乗っかってみます。 追記:前置きがやたら長くなってしまったのでまずコードをここで示します。下のほうに載せてあるワークスペース(Squeak4.2などの―)で直接…

Ulam Spiral を Squeak Smalltalk で

パラメトロン計算機: Ulam Spiral ちょうど無限素数列を使えそうなお話だったので Squeak Smalltalk で描いてみました。日本語版Squeak(Squeak4.2-ja-all-in-one) などのワークスペースへペースト後、あらためて選択してから do it(式を評価、alt/cmd + d…

無限素数列ジェネレーター版をスレッドセーフに

ちなみにGaucheの遅延シーケンスはスレッドセーフで、複数のスレッドが同時に頭から素数を取って行っても安全です。こちらの実装はどうですか? (挑戦状) shiro - 2011/10/02 12:09 ちょっと調べてみた感じでは、Squeak のジェネレーターでスレッドセーフは考…

無限素数列ジェネレーター版と特異メソッド版のベンチマークで Python、Ruby、Smalltalk を戦わせてみる

http://blog.practical-scheme.net/shiro/20110929-primes に触発されて、Squeak Smalltalk で無限素数列ジェネレーター版と配列の特異メソッド版で書き、それぞれ Python(ジェネレーター版)と Ruby(特異メソッド版)とで対決させてみました。Cog VM、盤…

「よりClojureらしい素数列」をSqueak Smalltalkで―のつもりがあらぬ方向へ

よりClojureらしい素数列 - OGINO Masanori@はてな http://blog.practical-scheme.net/shiro/20110927-primes まず、Squeak Smalltalk には遅延評価はおろか、無限配列もないのでどうしようかと思ったのですが(って、この時点であきらめろという^^;)、とり…

TDDBC 札幌 2.1 に Squeak Smalltalk & Seaside で参加してきた

TDDBC 札幌 2.1 wiki - TDDBC へようこそ 前回 に引き続き @tmaeda さんと、CLR/H などでお世話になっている @sandinist さんが Smalltalk を選択してくださり、札幌名物の Smalltalk チームを今回も作ることができました。ありがとうございます。 当日の成…

アラビア数字・ローマ数字変換をSqueak Smalltalkで

Common Lispには時々わけのわからない機能がある。formatの~@Rもそのひとつ。 roman->arabicの方はちょっとズルした。formatの~@Rに対称な機能がparse-integerに無いのは美しく無いよなあ。 http://blog.practical-scheme.net/shiro/20110901-arabic-roman …

TDDBC 東京 1.6 のお題を Squeak Smalltalk で

クレジットカード現金化詐欺【業界人が教える口コミ情報】 Backlog | プロジェクトホーム - 東京1.6(T16MAIN) [id/pass は guest] ファイルイン用の .st ファイルはこちら→ TDDBC-Tokyo16.st (Squeak4.2-ja-all-in-one で動作確認) Object subclass: #Kvs …

“Lisp vs. Smalltalk vs. Ruby” にある Smalltalk のコードをもう少し Ruby のコード例に近づけてみる

Lisp vs. Smalltalk vs. Ruby - Programming ≈ Fun 本来 Smalltalk ではこんなふうには絶対書かないので、あまり忠実にしても意味はないかなぁと最初思ったのですが、実際に書いてみたらなかなかおもしろかったので。 次のが Ruby がやっていることを再現し…

TDDBC東京1.5 のお題を Squeak Smalltalk で

楽しげなお題だったのでチャレンジしてみました。 TDD Boot Camp(TDDBC) - TDDBC東京1.5 Evernote Viewer ざっと思いつく実装を書いただけでろくにクタってもないため、ツッコミどころ満載かもですがどうぞお手柔らかに。^^; Squeak4.2J でファイルインして…

多人数でのジャンケンの決着のつかなさ加減を Squeak Smalltalk で体感する

おもしろそうなので試してみた。 じゃんけんゲームの結果はなかなか興味深い。10人いっぺんにじゃんけんさせると、4回程度で勝負つくときもあれば、99回かかるときもある。希だけど。50人いると10万回やっても延々と引き分け。ほんまか? Twitter / あひる 5…

ということで、Smalltalkでは、FizzBuzzを書くのにモナド的な視点で逃げをうってみた

経緯は id:terazzoさんのところでまとめてくださっています。 JavaでモナドでFizzBuzz〜復讐編〜(Re:数値のFizz、Buzz等への変換を、Javaで通常より直感的に表現したい) - terazzoの日記 で、こちらのほぼタイトルだけをヒントにして、そうか、一連の処理を…

TDD Boot Camp 札幌 2.0 のお題を、自分ならどう書く?とその解説

TDD Boot Camp 札幌 2.0 に参加してきました。 TDD Boot Camp 札幌 2.0 開催しました - やさしいデスマーチ 1.0(の特に二日目)のときは与えられた Java のお題を即興で Smalltalk に変換し半ばゲリラ的に Smalltalk を使わせていただいた経緯があったので…

『数学ガール/乱択アルゴリズム』の3-SATのくだりを1ミリも知らないまま乱択アルゴリズムをSqueakで変態的に書いてみる

数学ガール/乱択アルゴリズム(2) - Mae向きなブログ 乱択アルゴリズムに挑む(その 4) - 似非プログラマの覚え書き 上のページを参考に、おそらくはこんなようなことなんじゃないかなぁと想像しつつ書いてみました。Squeak4.1J、Squeak4.2J のワークスペース…

行列乗算(matmul)ベンチマークを Squeak Smalltalkで

Programming Languages Benchmarks にある、行列の乗算を使ったベンチマーク(matmul)をいくつかの方法で書いて速度を測ってみる試みです。まずは、Ruby版の matmul_v1.rb を機械的に Squeak Smalltalk 向けに変換。 | ans | {[ | matmul matgen N A B C | …

Squeak/Pharo次世代高速CogVMで、Project Euler 250に挑戦してみる

間があいたわりに似たようなネタが続きますが、き に し な い。 あと念のため Project Euler にまじめにとりくんでおられる方にはネタバレを含むので以下ご注意ください。 夜中からの Haskell 談義 - Togetter より、下のような記事があるのを知って、本題…

なぜRubyはメソッド呼び出しループベンチでかくも異常に遅いのか

Objective-Cの『遅さ』を計測したら、JavaやC++の5倍も遅かった: ニュースの社会科学的な裏側 476 :デフォルトの名無しさん:2011/02/25(金) 16:29:14.06 >>226 MatzRubyが堂々の3時間01分をたたき出したのには吹いた。 (趣味だけど)Ruby使いなんで、ちょっ…

メソッド呼び出しループベンチにSmalltalkで参戦してみる

Objective-Cの『遅さ』を計測したら、JavaやC++の5倍も遅かった: ニュースの社会科学的な裏側 ただし手元の環境(MacBook Air 11", 1.6GHz Core 2 Duo, Win 7)は非力なので、ループ回数は 268435455回に減らしました。Cygwin環境であるせいか、Objective-C …

数値のFizz、Buzz等への変換を、Smalltalk(とRuby)で通常より直感的に表現したい

FizzBuzz を Smalltalk的に書くとして、ある n に対して、 n asFizzString, n asBuzzString ifEmpty: [n printString] あるいはもっと簡素に、 n fizz, n buzz ifEmpty: [n] というふうに n にメッセージを送ることでしかるべく変換された文字列の結合―とい…

Squeak Smalltalkで変態的に末尾再帰最適化をする。

Python や Ruby のような平凡な刀もとい言語でのクロージャーなどを使うフロー制御方法などもなかなか興味深いですし、それらをデコレーターやメタプログラミングと組み合わせて適用するところも秀逸なわけですが― http://d.hatena.ne.jp/wasabiz/20110118/1…

「TDD Boot Camp 札幌」にSqueak Smalltalkで参加

1日目は @mrknさんとペアプロで、2日目はソロでしたが、例題のレガシーコードを昼休みに Squeak Smalltalk に書き直してから、仕様化テスト書きとリファクタリングまでやってみました。両日ともとても充実していました。振り返りでも言いましたが、テスト…