No Such Blog or Diary

«Prev || 1 | 2 | 3 |...| 1265 | 1266 | 1267 |...| 1321 | 1322 | 1323 || Next»

google電卓

なにやら機能強化されたらしいので,日本語で大きな数を試してみた.

入力              結果
一割る二は        一 /二 = 0.5
十割る二は        十 /二 = 五
百割る二は        百 /二 = 五十
千割る二は        千 /二 = 五百
万割る二は        万 /二 = 五千
億割る二は        億 /二 = 五千万
兆割る二は        兆 /二 = 五千億
京割る二は        京 /二 = 5.0 × 1015
垓割る二は        垓 /二 = 5.0 × 1019
杼割る二は        杼 /二 = 5.0 × 1023
壌割る二は        壌 /二 = 5.0 × 1027
溝割る二は        --- (溝が反応しない...)
澗割る二は        澗 /二 = 5.0 × 1035
正割る二は        正 /二 = 5.0 × 1039
載割る二は        載 /二 = 5.0 × 1043
極割る二は        極 /二 = 5.0 × 1047
恒河沙割る二は    恒河沙 /二 = 5.0 × 1051
阿僧祇割る二は    阿僧祇 /二 = 5.0 × 1055
那由他割る二は    那由他 /二 = 5.0 × 1059
不可思議割る二は  不可思議 /二 = 5.0 × 1063
無量大数割る二は  無量大数 /二 = 5.0 × 1067

溝だけうまくいかないが他は良好.ちなみに小数のほうはうまくいかない模様...

Tor を使ってみる

別に Proxy の需要があるわけではないが,P2P を Proxy に使う発想が面白いので試してみた.とりあえず公式ページからダウンロードしてインストール.Proxy のスイッチが面倒なので FireFox に SwitchProxy日本語版) を入れる.Tor は socks でHTTP以外にも使えるので localhost:9050 を socks の proxy に設定.動作中の DOS窓をどうにかしてほしい(タスクトレイにするとか)と思いつつ,気にせず確認くんで試す.確かに proxy が刺さっていることを確認.でも結構遅いな... 使いどころ微妙.

ディスプレイ逝く

やっと晴れたのでディスプレイ梱包のための段ボール箱を購入.微妙にでかいためチャリで運搬中に風圧で飛んでいきそうになったりもしたり.兎にも角にも,これにてリサイクル準備完了.あとは郵便局に集荷を頼んで終わり.ただまあ,集荷がもう少し早く来てくれるとうれしいかなぁとも思わないことはなかった.頼んだのが昼で,ついでに担当者が居らんかったのが悪かったのかもしれんけど... 何はともあれ,ディスプレイよさようなら.狭い部屋が少しは広くなった.

縁石でこける

今日は午前に輪読があったので傘をさしつつ雨の中を徒歩で研究室へ急いだ.傘をさしてると歩道ですれ違うのが面倒なので歩道と車道を交互に歩く.最後に車道から歩道へもどるとき,テーパーのついた塗料の塗られている縁石を右足で踏んだ.んで,踏み込んだ右足が左に滑ってこけた.きれいな足払い.受身をとっても右半身はびしょぬれ. まあ,こけても笑い話のネタになるからいいけど追い討ちのように研究室に人がいないのはどうかと... 人が来るころには乾いてこけた証拠もなくなるので面白くない.コケ損.

分割配送って...

アマゾンで複数の本を注文しておいたら勝手に分割配送にされていた... 複数回受け取るのが面倒だからいっぺんに注文したというに.予約ものが入ってるとこうなってしまうのだろうか?

ラムダ式をS,K,Iへコンパイル

自由変数のないラムダ式を S, K, I のコンビネータで記述するためのプログラムを書いてみた.演習の課題で S,K,I 以外のコンビネータを S,K,I で書けという問題があるそうだけどそんなのはプログラムでやるものだし(Bなんか手でやる気がしない).んで,毎度のごとく Haskell でコンパクトに.

data LExp = Lambda (Int, LExp)
          | Apply  (LExp, LExp)
          | Var    Int
          | S
          | K
          | I
ctc (Lambda (x, exp)) = let exp' = ctc exp in (ctc' exp' x)
  where
  ctc' (Apply (exp1, exp2)) x = Apply (Apply (S, ctc' exp1 x), ctc' exp2 x)
  ctc' (Var y) x = if y == x then I else Apply (K, Var y)
  ctc' l x = Apply (K, l)
ctc (Apply (exp1, exp2)) = Apply (ctc exp1, ctc exp2)
ctc x = x

ラムダ式 LExp はλ抽象,適用,変数と,コンビネータ S, K, I で.コンパイル自体はλ抽象を内側からコンビネータに変換していくだけ.変換はアプリケーションに関しては S にして,変数に関しては束縛されるなら I, そうでないなら K.

折角なのでコンビネータからラムダ式への変換(alpha変換, beta簡約)も書いて知ってるコンビネータも全部書いてみた CompileToCombinators.hs .

«Prev || 1 | 2 | 3 |...| 1265 | 1266 | 1267 |...| 1321 | 1322 | 1323 || Next»
Search
Feeds

Page Top