僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
「わが友 石頭計算機」より。
「足し算」でもって「引き算」の解を求める。
補数を求める演算は引き算になってしまうけど。
(defun plusminus(a b) (- (+a (- 10 b)) 10)) (plusminus 123 87) 36 (plusminus 3 -5) 8 (plusminus -9 3) -12
ずっとつつかないでいたので、Smalltalkなんてほとんど忘れてる。
以下、GNU Smalltalk 3.2.4-2(Ubuntu)。
st> '2' + 3 Object: '2' error: did not understand #+ MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254) String(Object)>>doesNotUnderstand: #+ (SysExcept.st:1407) UndefinedObject>>executeStatements (a String:1) nil
st> '2' asInteger + 3 5
前に書いた
as.Integer とどう違うのかは、、、また考えよう。
そのうち。
asInteger メッセージを Float に送ると、四捨五入するようだ。
ただし String だと、有無を言わせず切り捨てているように見える。
また
基数付きの表示になるはずの String では、r より前
(要するに基数)
が返されておしまいになった。
st> 4.5 asInteger 5 st> 4.4 asInteger 4 st> '4.5' asInteger 4 st> 10r4.5 asInteger 5 st> '10r4.5' asInteger 10
メソッド一覧。とりあえず。
入門書をひもといてなんだかんだ。
[1]> (format t "~A とは、~~ のことである" "チルダ") チルダ とは、~ のことである
~ のエスケープ(~~)に少しまごつく。
scheme なら t が #t に変わる程度みたい。
EmacsLisp は、もう少し異なっていた。
(format "%s とは、~ のことである" "チルダ") "チルダ とは、~ のことである"
なんともお粗末だけど、答えがあってるか どうかを除いて、何も参考にしていない。
#!/usr/bin/env python3 zero = 0 first = 1 last = 10 print(zero, first, end=' ') temp = 0 for x in range(last - 2): temp = first + zero print(temp, end=' ') zero = first first = temp print(' ')
0 1 1 2 3 5 8 13 21 34
Wikipedia にあった、
「ヴィーナスの誕生」の、
一番大きな画像(JPEG形式で30000x18840ピクセル、約202MB)
は、ブラウザと帯域が持ちそうにないと
見て、wget -c して取った。
4% のサイズで、1200x754 は表示できたが、フルサイズは
display(1)では無理だったみたい。
$ display \ Sandro_Botticelli_-_\ La_nascita_di_Venere_-_Google_Art_Project_-_edited.jpg XIO: fatal IO error 14 (不正なアドレスです) on X server ":0" after 12977 requests (3552 known processed) with 53 events remaining.
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。