OOPL

Smalltalk-76 とアルト・エミュレータ(ContrAlto)でマンデルブロ集合

最後はやっぱりアルト実機に対抗(?)して、アルト・エミュレーターの ContrAlto で動く Smalltalk-76 で書いたマンデルブロ集合描画で締めくくりたい…と思ったのですが、想像以上に遅くてけっこう大変でした。^^; Smalltalk-76 を動作させるにあたり こちら …

Squeak Smalltalk でマンデルブロ集合 番外編(Squeak Etoys 毛玉版)

Squeak Etoys に組み込みの id:squeakerさんの毛玉(Kedama)を使って書いてみました。基本的に その3 などでやっているように実部と虚部に分けて計算する実装の移植です。毛玉は、端的に言うと LOGO の後継の StarLogo の流れを汲む並行処理版タートルグラ…

Squeak Smalltalk でマンデルブロ集合 その3(1トゥート版)

マストドンでは1トゥートが 500文字までで、そのインスタンスのひとつの Qiitadon ではコードブロックを指定できることから、短めのプログラムならシンタックスハイライトを使ってトゥートすることが可能です。id:squeakerさんが提示された配列を積算する方…

Squeak Smalltalk でマンデルブロ集合 その2(id:squeakerさん版)

コメントでいただいた id:squeakerさんのコードに僭越ながら少し手を入れたものを。FlaotArray>>#*= とか知らなくてなんじゃこれ?!となったのは内緒です。^^; Float nan や Float infinity の振る舞いを利用するのは面白いですね。 | size half zREs zIMs …

Squeak Smalltalk でマンデルブロ集合

こちらの件のレストアしたアルト実機で BCPL で記述したマンデルブロ集合を実行してみたら1時間かかったという話を読んでいて、そういえば自分でマンデルブロ集合を描いてみたことがなかったなぁ…と気付いたのでさっそく書いてみました。本当は、かなり以前…

型クラスの現在のところの理解を Squeak Smalltalk で表現してみる

ここ数日で、Scala の implicit parameter がどうやって型クラスっぽいことを実現しているかというのが分かったような気になってきたのと、型クラスが「状態を扱わないメソッドの集合」であるということを聞いて「それってまさにトレイトそのもの(ただし Sc…

〜ect:で終わるセレクター(Rubyで言うところの〜ect系のメソッド名)にはどんなものがあるか、あらためてSqueak Smalltalkで調べてみた

アーロ・ガスリーの「アリスのレストラン」の歌詞にインスパイアされて Smalltalk-80 から使われ始めたとされる collect: 、select: 、inject:into: など Ruby で言うところの Smalltalk 由来の 〜ect系のメソッド名(Smalltalk では「メッセージセレクター…

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

イケてない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 …

“サイコロの展開図”問題を正規表現がデフォで使える Pharo Smalltalk で(正規表現を使わずに Squeak でも)

サイコロの展開図 横へな 2015.3.7 問題 Pharo では正規表現が使えるとのことなので、ちょうどそれ向きのお題ということもあり、久しぶりに Pharo で、Squeak 向けのコードの動作確認の範疇をこえて、書き下ろしていろいろ遊んでみました。 | patterns solve…

“とある世界のタクシー料金”問題を Squeak/Pharo Smalltalk で

とある世界のタクシー料金 横へな 2015.4.18 問題 | cityOfPlace distOfSection additFare initFare fareFor | cityOfPlace := Dictionary new. #(円來 'ABC' 炭州 'DEFG') pairsDo: [:ci :pls | pls do: [:pl | cityOfPlace at: pl put: ci]]. distOfSectio…

「進捗・どう・です・か」を Squeak Smalltalk で

タイトルにもあるように「進捗・どう・です・か」をランダムな順序で表示し、「進捗どうですか」が完成したところで適当にクエスチョンマークをつけて去っていくプログラムです。特に意味もなく文字カウントします。おおよそ数十文字から1000文字程度で目的…

共立出版刊「Common Lisp オブジェクトシステム」の共通例題 Grapher の Smalltalk-80 版を Squeak 1.3 で

Ruby の「特異メソッド」命名の元ネタとも言われる、共立出版刊「Common Lisp オブジェクトシステム」にあった各種 OOPL での共通例題の Smalltalk-80 版を Squeak Smalltalk のごく初期のバージョン(1.31)で動かしてみました。 CLOS-Grapher.st だいぶ改…

“SEND + MORE = MONEY”ソルバーを Squeak Smalltalk で その4

久しぶりに SEND + MORE = MONEY 。以前書いたもの(ブルートフォース版)の焼き直しなのですが、少しだけ趣を変えてみました。デュードニーの覆面算というのですね。 | int solveAlphametics | int := [:array | array reversed polynomialEval: 10]. solve…

ジバニャン方程式を Squeak Smalltalk で

ジバニャン方程式をついに発見した https://t.co/6ADdU4LGyw pic.twitter.com/CEtNYcb80x— Akiya Mizukoshi (@Akiyah) 2014, 11月 12 輪郭抽出が手抜きでちょっとあれですが…^^; | jibanyanEquation form size | jibanyanEquation := [:x :y | { { {1-(x/108…

プロ生ちゃん #カレンダープログラミング を Smalltalk で

プログラミング言語は自由(既に応募がある言語でも OK)コードを実行した当月の日曜始まりのカレンダーを出力する追記: 当月を取得できない処理系は、年と月を指定する出力形式はサンプルを参考に、細かい点は自由 「プロ生ちゃん #カレンダープログラミン…

久しぶりに竹内関数で JavaScript、Python、Ruby、Scheme と Smalltalk とを戦わせてみる

AO bench で味を占めたので。 徒然日記 | tak(20, 10, 0)関数ベンチマーク 今回は上のリンク先の結果と対比できるように tarai(y を返す)ではなく tak(z を返す。 “ニセ”竹内関数)で tak(20, 10, 0) を手元の環境(Intel Core i7-4650U @1.7GHz/2.3GHz、…

ひさしぶりに AO bench を試したら Squeak/Pharo が(少しだけど 圧倒的に)VisualWorks より速くなっていたでござるの巻

Island Life - Gaucheでaobench再び に触発されて、マシンも処理系も前回から刷新されたことだしと試してみました。コードはいろいろとひどいのであらためて書き下ろしたい気持ちもありましたが、へんに Smalltalk っぽく書き換えたところで遅くなるだけなの…

九州の七つの県を三色で塗り分ける問題を Squeak Smalltalk で

688 :デフォルトの名無しさん:2014/08/03(日) 16:21:36.50 ID:vVRF2pWw お題:九州の七つの県を三色で塗り分ける。 プログラミングのお題スレ Part4 | 九州 配色 状態 待行列 | 九州 := { #福岡 -> #(佐賀 熊本 大分). #佐賀 -> #(福岡 長崎). #長崎 -> #(…

Coffee Time Challenges, Q13 How many を Squeak Smalltalk で

ときどきの雑記帖″ 2014年7月(下旬) 経由で。(ネタバレ注意) 13) How manyChallenge: ABCDEFGHIJ is a ten-digit-number. All of the digits are distinct. If 11111 divides it evenly, how many possibilities are there for ABCDEFGHIJ? Coffee Time Ch…

Squeak Smalltalk で 配列を交互に分配

http://blog.practical-scheme.net/shiro/20140518-alternating Squeak Smalltalk でならどう書くかなぁ…と、いろいろ考えてみたのですが、いまひとつしっくりくるものがないので、いくつか思いついた書き方をざっくばらんに晒しておきます。 お題は、#(x0 y…

誰得かわからないSqueak Smalltalkを使った関数型プログラミングっぽい話

当初、誰向けかわからないCommon Lispでの関数型プログラミング入門とその未来 - 八発白中 に例にあがっているコードを Squeak Smalltalk ならどう書けるかというような、少しは有益なことを書こうかと思っていたら、のっけからネタに走ってしまって失敗しま…

1からnまでの配列をシャッフルして偶然昇順に戻るまでをシミュレート

358 :デフォルトの名無しさん:2014/01/31(金) 05:31:38.44 まず、ユーザに1以上30以下の整数をひとつ、入力してもらう。これをnとする。 1〜nの整数を並べる。これをLとする。 ※Lをシャッフルする。 Lが偶然にも大きいものから小さいものへの順に並んでい…