schemeまとめ | SU-Ⅲ 電脳紀 Second

SU-Ⅲ 電脳紀 Second

基本的に雑記ですが、情報系の事も書きます。

※注意
自分用のメモ書きのノリで書いています。
間違っていても責任は負いませんのでご注意ください。
また間違いをもし見つけて下さった方は分かりやすく教えていただけると非常に助かります。


授業で初めて今季習って結構衝撃だったので全授業が終わった今まとめてみることにしました。



プログラムは

  1. 基本式

  2. 組み合わせ

  3. 抽象化


この三つからなる。





演算子を一番左に書き、続いて演算子を書く。
それを括弧で囲む(括弧で囲まないと演算子による評価が行えない)

以下の場合であれば非演算子1と2に対して演算子+によって評価が行われ、3が返ってくる。
(+ 1 2)

他の-,*,/らも普段と同じ減算、乗算、除算が行える。
この四則演算子は非演算子として2より多くの引数を与えることも可能なので次のような計算であれば10が返ってくる。
(+ 1 2 3 4)

入れ子にもできる。
(+ 1 2 3 (* 2 2))

余りの計算はパーセント記号ではなくremainderが用意されている。
記号じゃないけどこれも四則演算子と扱いは変わらない。
15の10の余りを計算するときは次のようにすればいい。
(remainder 15 10)

ていうか授業が始まって直後はコイツらのせいでむしろ混乱してました。

(関数名 引数1 引数2 引数3 ...)

というふうに関数に引数を与えて括弧で囲って評価するという認識のほうがすんなり入ってくると思います。
最初の四則演算子も関数という認識で。
(っていうか資料にはそうも書いてあったと思う。でも最初に演算子から入って、しかも演算子って書かれるとあとで違和感を覚えるんですよ。バカだから。)



define

授業ではまず最初に
(define a 5)

みたいな例が出てきた後、
(define "変数の名前" "式")
みたいになってました。

が、
(define "名前" "実物")

のほうが後で悩まないで済むかなと思いました。
というのもまずこのdefineは代入とはちょっと印象が違うし、
普段Cとかで使う変数名の他に関数名の定義やその他もろもろにも出てくるから。
数字や文字列などの原始的なデータのほか、関数やリストとも対応付けするとき使います。
「変数aという箱に2を入れてます」って言うより「2っていう物体を以後aと呼称する」って感じなんですかねぇ……。