プログラミング

マイ○スイー○ーもどき

暇だったので Pharo で作ってみました。 ベースは PharoByExample に出てくる LightsOut です。 まだ点数やプレイ時間を計測する機能はありませんが、一応一通りの機能は作りました。たぶん。それと、版権にひっかかりそうなのでタイトルは一部伏せましたw …

SeasideByExample

文章が古いなら古いで、ソースも古ければまだいいのですが、ドキュメントとソースの内容が食い違い過ぎていて面倒くさくなったのでとばしますかね。ドキュメント流し読みで、ソースをメインで読んだほうがいいかな。

Brilliant Stars Project

| rotatePoint calcPoints mergePoints starPoints | rotatePoint := [ :x :y :rad | ((rad cos * x) - (rad sin * y)) @ ((rad cos * y) + (rad sin * x))]. calcPoints := [ :r | (0 to: 8/5 by: 2/5) asOrderedCollection collect: [:each | rotatePoint …

Pharo はじめました

Pharo - Welcome to Pharo!Windows 用は 64 ビット版の開発は、遅れてるっぽい感じかな。「Workspace」は「Playground」に名前が変わってましたが使い方は同じでした。いちおう初心者なのでwww、「Pharo by Example」を読んでいます。文章量は書籍一冊分…

連続する整数の「7」の個数を数える(解説)

ちょっとコードがひどかったので書き直しましたw 手続き seven だけ再掲します。 (define (seven num) (define (iter n q r s k cnt) (if (= n 0) cnt (iter (quotient n 10) (quotient q 10) (remainder q 10) (+ s (* r (expt 10 k))) (+ k 1) (cond ((= …

連続する整数の「7」の個数を数える

久々のプログラミングネタw! 暇だったので解いてみました。まずは、愚直なコードで傾向と対策を考えますw #;(define (test limit) (define (iter n c) (if (> n limit) c (iter (+ n 1) (+ c (length (filter (lambda (x) (= x 55)) (map x->integer (str…

XFが遅すぎる(その後)

実機があるのでエミュレータは放置していたのですが、真面目にエミュレータ作ることにしました。ネットで調べてゴニョゴニョすること小一時間、なんとかエミュレータが出来ましたよ。 結論:エミュレータのほうが、めっちゃ速いwww 単純に実機の処理性能…

XFが遅すぎる

普通に実行して 30~40 ms で終わる処理が XF だと何分かかるの!ってぐらい遅い。 手持ちの Android 実機にデプロイしているのでエミュレータは関係ないはず。 というかエミュレータが遅いとか以前に処理が半端なく遅い。 Android 実機が遅いのか? XF がダ…

チケットナンバー問題の回答の最適化 バグ修正のバグ修正

2018.6.7 掲載分のプログラムがバグってました。C# に移植していて気が付いた。 除算のときの divisor の値はカッコ付き式(リスト)の場合もあるので、ゼロチェックの前に数値チェックが要ります。 バグっていた analyze-rpn のみ再掲載します。 (define (ana…

チケットナンバー問題の回答の最適化 バグ修正

以前に掲載したチケットナンバー問題の回答の最適化がバグってましたwその1 リストの比較処理が手抜きすぎ。エラーで落ちる。 gosh> (answer3 '(3 3 3 3) 10) *** ERROR: real number required: * Stack Trace: _______________________________________ 0…

チケットナンバー問題の回答の最適化

たまにはプログラミングの日記を書きますかね。ぜんぜん書いてないので。まず以前に書いたチケットナンバー問題のプログラムです。 チケットナンバー問題の細かい仕様はググってください。言語は Scheme、開発環境は、Emacs + Gauche です。 (define nil '()…