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

Squeak 5.1 をエディタ代わりに使い始めたので気付いたことを記録

ちょっとしたことを書くときに使うようにエディタ代わりに立ち上げている Squeak環境を 4.3J から久しぶりに 5.1 に更新して気付いたこと。 ▼ duplicate があっさり殺されていた件 duplicate は、任意のテキストを選択→ alt-shift-d というキー操作で、選択…

Squeak 5.1 でとりあえず日本語を表示させるために踏んだ手順の記録

Windows 8.1 での手順を記します。 Squeak5.1 を http://squeak.org/ の Windows版ボタンをクリックしてダウンロード、展開。 http://www.geocities.jp/ep3797/modified_fonts_01.html から komatuna.ttf、komatuna-p.ttf を入手して Squeak5.1-16548-32bit.…

『プログラミングElixir』出版記念: Elixir、Ruby、Squeak Smalltalkでspawn/chain.exの速度対決

OOP

なぜか Ruby インタプリタ開発者が翻訳をしたことで話題の『プログラミング Elixir』 p.167 にある「14.2 プロセスのオーバヘッド」のサンプルコード https://media.pragprog.com/titles/elixir12/code/spawn/chain.ex これと似たようなことを Ruby の軽量ス…

イケてないRubyのコードのリファクタリングって奴をSmalltalkでやってみる(sumim版)

件のネタについては Ruby ではすでに言及済みですが、その後 えせはらさんが Smalltalk に書き直すかたちで イケてないRubyのコードのリファクタリングって奴をSmallTalkでやってみる - Line 1: Error: Invalid Blog('by Esehara' ) というすばらしいエント…

手続き的で冗長な Ruby のコードを Squeak/Pharo Smalltalk の類似機能を活用してよりシンプルに書き換える

Rubyのリファクタリングでイケてないコードを美しいオブジェクト指向設計のコードへ改良するための方法 - その3 - ベルリンのITスタートアップで働くジャバ・ザ・ハットリの日記 こんな感じの“イケてない”と称されるコードを改善する話。 def total_sales_w…

Sak 関数ベンチを Squeak/Pharo Smalltalk で

絶対どっかにありそうだけど、ベンチマーク用関数 fib_m() を考えてみた。 fib_m(0 or 1) = 1 fib_m(n) = fib_m(n-1) * fib_m(n-2)Sak 関数と呼んで下さい。 Diary - 2016 July 研究日記 これを Squeak/Pharo Smalltalk で試してみました。 "メソッド版" Int…

現在の Smalltalk(すなわち、-80以降)と Smalltalk-76, -72における true, false の扱いの違いを調べてみた

元の話の発端が何かは分からなかったのですが、最近 Ruby の true, false の属するクラスについての言及TrueClass / FalseClass が分かれてるのはSmalltalkもそうだからまあある程度理由はあったと思うんだけど。でもSmalltalkはちゃんと共通祖先のBooleanを…

「『出現確率1%のガチャを100回引いても,4割近くの人は全部はずれる。“本当の確率”を読み解いてみよう』を素直に解いてみる」をSqueak Smalltalkで

『出現確率1%のガチャを100回引いても,4割近くの人は全部はずれる。“本当の確率”を読み解いてみよう』を素直に解いてみる - L'eclat des jours(2016-03-12) 「1 - 100回引いてハズす確率」ではなく、各回の当たる確率を積算して算出する計算はどうなるか、…

平和な動物園を作ろう!をインスタンス特異的メソッドを用いてSqueak Smalltalkで

http://echo.2ch.net/test/read.cgi/tech/1444216746/361 経由で、 あなたは,さいたま動物園の園長に選ばれました.さいたま動物園には全部で10種類の動物たちがいます.あなたの園長としての初仕事は,これらの動物たちをどのオリに入れるかを決めることに…

Smalltalk-76(-78)のArrayのAPIが思ったよりSmalltalk-80と違っていて面白かったので、気付いた範囲でいくつか拾ってみた

Smalltalk-78 on lively-web.org x . "at:put:, yourself" ↪(1 2 3) ◦ 2 ← 100; itself "⇒ (1 100 3 ) ". "atLast:put:" ↪(1 2 3) last ← 100; itself "⇒ (1 2 100 ) ". "replaceFrom:to:with:" ↪(1 2 3 4 5 6) ◦ (2 to: 3) ← ↪(20 30); itself "⇒ (1 20 30 …