見出し画像

Retro-gaming and so on

RE: プログラミング学習日記 2022/09/12〜

星田さんの記事に対してのコメント。

 ・#; って;とどう違うのか謎。もしかして同じ行の中で部分的にコメントアウト出来るのか?と思ったけど普通に行末までコメントアウトされるし・・

いや、星田さんが考えてる通りです。
次の例を見てみよう。


(+ 1 #; 2 3)と入力すると4が返る。明らかに2がコメントアウトされてる。
Racketでもこんなカンジ。


結局、行末までコメントアウトしてるように「見える」のは、Gaucheのせいじゃなくって、PaizaのオンラインエディタがキチンとSchemeの構文を見てないから、です。
ちと紛らわしかったね。エディタ側の問題だ。

・<datum>ってなんだ?と思って調べたけど明確な答えが見つからない。

一応、注釈がリンクしてるかな。

⟨datum⟩ は read 手続き (6.13.2 節を参照) が正常にパース
できるものです。⟨expression⟩ としてパースできる文字列は
すべて ⟨datum⟩ としてもパースできます。

ザックリ言うと、Schemeで扱えるすべてのデータ型の事、です(※1)。

・データムラベルが謎。リストとかで呼び出すんじゃなくてデータを直接呼び出すということ?変数に束縛で良いのでは?

知ってる範囲で言うと、これこそユーザーはあんま関係ないかなぁ。僕も一つしか見たことないです。循環リストで出てくる表現だよね。


これ以外にSchemeでは見たことがないです。
いずれにせよ、取り敢えずはSchemeユーザー的には入力には全く関係なくって、出力に関する表現形式の一つだ、と考えていいんじゃないかな(※2)。

※1: 英語に堪能な人なら知ってるだろうが、datumは単数形の単語で、これの複数形がいわゆるdata(データ)になる。datumsにはならんし、何故か日本語に入ってきた時、通例と違って複数形(data)の方が日本語化してしまった。
ちなみに、英語には名詞の形容詞的用法、と言うものがあって、その場合、形容詞的に使われる名詞は単数形を用いる、と言う基本ルールがある。

例) cat food

上の例だとcatも名詞、foodも名詞で前者が「名詞の形容詞的用法」でfoodを修飾して「猫の餌」の意になる。
英語教育の通例では、唯一の例外としてスポーツカーが良く挙げられる。英語でもsport carにはならずsports carだ。
ところが、もう一つ例外がありえる。つまり、データベースはdatabaseなのだが、dataが複数形である以上、フツーだとdatumbaseになりそうなんだがそうなってない。これは2つ目の例外になりえるんじゃないか。
そのうち、もとこんぐさんが詳しく解説してくれるかもしんない(笑)。

※2: ANSI Common Lispではリーダーの挙動を変えるリードマクロと言う機能があって、どういう読み込みをどうLispに解釈させるのか、ユーザーが自由に定義出来る、と言う恐ろしい、黒魔術的な機能があって、それ絡みと言えばそれ絡みの話だ。
ただし、Schemeの場合、基本的にそこまでユーザーに自由は与えてないし、仮にあっても実装依存の話になって一般化しづらいんで、割にこの辺の説明は中途半端だよな、と言う気がする。
  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「RE: プログラミング学習日記」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事