逆ポーランド記法最強?

http://wiredvision.jp/news/200807/2008070921.html
逆ポーランド記法を使えということですね。

冗談です。まあ、多分、+とか−とかは、範疇としては述語よりも and とか or に近いものなんだと思う。

とりあえず、Func(x) よりも x.Func() の方がとっつき安いってのは確かな気がする。

で、x.Verb(y) よりも、(x, y).Verb() の方が自然ってことですかね?ダブルディスパッチ用の構文は確かに欲しい。

現状、拡張メソッド定義して、x.With(y).Verb() とか x.To(y).Verb() とか書くのがいいのかな?

それか、new {By = x, With = y, To = z, From = w}.Verb() とか。

追記: そんな C# プログラム書いてみた。

ほんとに以下みたいな書き方できるプログラムを作ってみた。

Nominals.Make(

    "Hello World!\n".を(),
    Console.Out.に()
).出力();

string 置換結果 =
Nominals.Make(

    "置換前の文字列\n".の(),
    "置換前".を(),
    "置換後".に()
    ).置換();

string 繋いだ結果 =
Nominals.Make(

    "abc".と(),
    "def".と(),
    "ghi".を()
    ).繋ぐ();
Sentence
    .With("Hello World!\n")
    .To(Console.Out)
    .Write();

string result =
    Sentence
    .With("置換前の文字列\n")
    .From("置換前")
    .To("置換後")
    .Replace();

ソースファイル↓
http://ufcpp.net/study/csharp/source/Sentence.zip

ええ、書きやすくも見やすくもないですね。というか、VB の名前付き引数でいい気がしてきた。

そもそも記事の信憑性

まあ、↑のソースはネタです(笑)

実際のところどうなんでしょうね、SVO よりも SOV の方が自然だって話。なんせ、元ネタの記事自体、被験者たった40でいいの?とか SOV の言語はトルコ語だけ?とかいろいろ疑問もありますし。

そもそも、SVO とか SOV とかいうのも、いくらでも崩しようがありますし。たとえば・・

  • 私はそこで犬を見た
  • 私がそこで見たものは犬だ
  • 犬を見たの、そこで、私

語順に厳しい英語ですら、形式主語だの関係代名詞だので語順変え放題。

  • I saw a dog there.
  • It was a dog I saw there.
  • There was a dog I saw.

まあ、ニュアンスどころじゃなくて微妙に意味違いますけど。

推測としては、SOV が分かりやすいんじゃなくて、

  • 「話の主題となる名詞2・3個」 + 「述語」 + 「付帯情報となる名詞」

とかが一番わかりやすい気がする。

仏語なんかは基本的に SVO なのに、Je t'aime (英語にすると I you love の語順)とか On y va(同じく One there goes)みたいな文章書くことがあるし。欧州言語でも、南の方の言葉は割と語順自由だから目的語が述語の前に来がち。