トップ «前の日記(2013-05-13(Mon)) 最新 次の日記(2013-05-23(Thu))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2013-05-19(Sun) 食い散らし

足し算で引き算

「わが友 石頭計算機」より。
「足し算」でもって「引き算」の解を求める。
補数を求める演算は引き算になってしまうけど。

(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

メソッド一覧。とりあえず。

LISP系言語のformat文字列

入門書をひもといてなんだかんだ。

[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

Raspbian で大画面

某LEDテレビモニタのHDMIに接続して startx してみた。
1824x984 の、スクリーンショットは撮ってないけど。

大きすぎて表示できなかった

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や内容が変った場合はあしからず。

index.htmlは ここから。