[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bep] learning lisp: while



 r高橋です。

Reply TAKAHASHI Naoto <ntakahas@...>'s message:

} すぐに使える実用的なものの方がやり甲斐があって面白いのですが、とっさに
} は適当なものを思い付きません。何かやりたいことはありますか?  実用的で
} はありませんが、X-Weather を「〜でござる」口調に変換するなんてのはどう
} でしょう。文字列検索と置換の練習になります。

 これは、メール上で実行すると、X-Weatherを探して置換してくれる関数、と
いうことですか? べつに実用的でなくても、やってみたいです。
みなさんのメールを、怪しげな少女言葉にしちゃう……なんていうのは難しい
ですか?

} 教科書的なものならば、
} 
} ・1000までの素数を全部求める (二重ループの練習)

 素数というのは、たしか、1とその数でしか割れない数のことでしたよね??
素数を求める式とかって、数学であったんでしたっけ?(すみません! 数学の
時間はずっと寝ていたみたいで……。)
扱うのが数だけなので(?)、まず、これからやってみたい……と思います。
あっ、もしかして、2から順番に割ってみて、答えが整数になったら……とかす
るのでしょうか(外してそう……)。

} ・自分の料理レパートリーから今夜のメニューをランダムに決める。
}   ただし過去五日以内に作ったものは選んでいけない (リストと乱数の練習)

 ……学生のときよりも今のほうがレパートリーの少ない私としては、これは
ちょっと……(^^;;;)。でも、万が一将来またお料理に目覚めることもあるかも
しれないので、やってみたいです。

 ほかに、私がやってみたいこととしては、
BEPを起動させたときにお天気を見に行って、その結果によって違ったwavファイ
ルを鳴らすとか……。
wavファイルがつまらないと、おもしろくならないとは思うのですが、朝(?)起き
て、窓も開けずにパソコンに向かってしまうオタクなみなみなさま(失礼!)に
もお天気がわかるように(^_^)。
ただ、お天気っていろいろなパターンがあるので難しいですよね。
たとえば、後ろから見ていって、いちばん最初に出てきた「晴」か「雨」か「曇」
か「雪」で判断するとかはどうでしょう?
「晴後雨」だったら、もう「雨」ということで……。

 あとは、買ってきた食料品をおおよそのカテゴリーに分けて記録しておくと、
賞味期限が来たっぽいときにさわいで教えてくれるとか……(プログラミング的
には、あまり意味がないでしょうか)。


} こういう and と or の混じった複雑な判定条件を逆にするのは間違いやすい
} ところです。ド・モルガンの公式と二重否定の公式を使って意味を考えずに
} 機械的に書き直した方が安全かもしれません。

 「ド・モルガンの公式と二重否定の公式」というのはなんですか?(またすみ
ません!)

} あと、この場合には not と file-regular-p を組み合わせるよりも、
} file-directory-p という関数を使った方が見通しが良くなりそうです。

 (file-directory-p filename)は、filename がすでに存在するディレクトリだっ
たら、t になるんですね。
そうすると、もしかして、(file-exist-p)のチェックはいらなくなるのでしょう
か?

(defun append-buffer-to-file ()
  (interactive)
  (let 
      ((coding-system-for-write 'shift_jis-dos)  
       (filename (read-file-name "append buffer to: " default-directory)))
    (while
	(or (not (file-writable-p filename))
	    (file-directory-p filename))
      (setq filename (read-file-name "file not writable. append buffer to: " default-directory)))
    (append-to-file (point-min) (point-max) filename)))

} よく知りませんが、何文字でもいいんじゃないでしょうか。Emacs-20 の
} minibuffer はピンディスプレイ装置同様高さが一行分しかないので、横幅いっ
} ぱいまで使い切るとスクロールして前の行が見えなくなってしまいますが、
} Emacs-21 なら自動的に画面上の行数が増加して全体が見えるようになります。

 横幅いっぱいになると、左へ一文字ずつずれるのではなくて、一行分スクロー
ルしてしまうんですね……?
minibufferに表示するメッセージは、できるかぎり短いほうがいい、ということ
ですよね。


**-***-***-***-***-***-***-***-***-***-***-***-**
           Reiko TAKAHASHI  (高橋玲子)
         E-mail:  HFC03614@...
         ICQ UIN: 85924121  (Twinkle)
**-***-***-***-***-***-***-***-***-***-***-***-**