2008/07/03

[scheme]関数系の言語?S式?

さっきまで、知り合いと飲み会をやっていて、そこでの会話

知り合いのTさん:「最近、maitoさん、何されています??」

maito:「schemeをやっています。」

Tさん:「schemeって何?」

maito:「関数系の言語です。」

とここまで話が進んだ時、横から、

知り合いのY氏:「schemeは、S式だから!!」

maito:「いえいえ、schemeは関数系の言語です。」

と上の2行を3回ぐらいループした後、S式ということで落ち着いたのですが、やっぱり納得いかなかったので、wikipediaで調べてみると、

Scheme(スキーム)は、ガイ・スティール(Guy Lewis Steele Jr.)とジェラルド・ジェイ・サスマン(Gerald Jay Sussman)によって開発された。LISPの方言の1つで、関数型プログラミング言語としての側面がよく知られたマルチパラダイムプログラミング言語である。

via:Scheme

ほら、やっぱり、あっているじゃん!!

しかし、LISPも調べてみると、

マッカーシーの1958年の論文は、2つのタイプの文を導入している。 S式(Symbolic Expression, シンボル式、sexp)と、S式の関数を表すM式(Meta Expression, メタ式)である。 M式には利点がなかったため、今日のほとんどすべてのLISP言語はコードとデータの両方の操作にS式のみを使用する。

via:LISP

と書かれている部分があって、結論として両方正解のような気がするのですが。。。

3 件のコメント:

  1. どんどんエンジニアらしい飲み会になっていってるねー。
    よきかなよきかな。
    ……良いのか?

    いきすぎると合コンでエンジニアしか
    理解できないジョークを連発するように
    なるという欠点が…


    で、読んでてふと思ったんだけど

    関数型言語:プログラミング言語の種類の一つ
    S式:記述方式の一つ

    なんじゃないのかなー。なので、
    「関数型 or S式」
    という議論自体がなんか違う気がする。

    "LISPはS式を採用した関数型言語"
    ちゅー事である意味二人とも正解
    なんじゃね??

    返信削除
  2. >「関数型 or S式」という議論自体がなんか違う気がする。

    そうそう、そうなんだよー。
    それなのに、「S式言語」っていうから、段々疲れてきちゃって、あきらめた。

    >"LISPはS式を採用した関数型言語"
    ちゅー事である意味二人とも正解
    なんじゃね??

    って俺も思うんだけど、ひどく、違うといわれてしまいました。

    やっぱ、satoさんがいうと、安心する。

    返信削除
  3. いや、適当にググって見た所での感想なんで
    あんまり信用しない方がいいぜ!!

    後は(俺が見たのもWikipediaだけど)Wikiは
    結局情報の信頼性という意味では低いからなぁー……

    個人的に一番手っ取り早いのは、LISPは
    S式と言い張っている本人にS式とは何か、
    それを踏まえてのLISPがS式であるという
    事の理由を聞いてみるのが良いと思うけどね~。

    俺が聞いてみたい。寧ろ。

    返信削除