人力検索はてなの「プログラミングに詳しい人に質問」がアレゲ

人力検索はてなで、「 プログラミングに詳しい人に質問です。大学でプログラミング経験の学部一年生向けにプログラミングを教えることを想定しています。週1コマ×半年程度の限られた時間で、プログラミングとはどういうものかという本質を教えたいのですが、どの言語を使うのが適切でしょうか。」という質問が。


これ、非常にアレなのが「まずは「プログラミングに詳しい」かどうか判定するための質問です。正しいものを選んでください。これに答えられない方は解答をご遠慮ください。」というのがあるあたり。以下の中から正しいものを選べ、ということなんだけど、何でSchemeを出したんだろ。

Schemeは1.5からオートボクシングの機能をサポートした

Schemeはインデントによってブロックを表現する
Schemeは多くのレンタルサーバに標準でインストールされている
Schemeでは関数がファーストクラスのオブジェクトである
Schemeの文の終わりはセミコロンである
Schemeは純粋関数型言語であり、副作用はモナドでくるむ必要がある
Schemeは型に厳格なため整数の加算と浮動小数点数の加算の演算子が異なる
Schemeは関数の呼び出し時に括弧を省略することが出来る
Schemeのマクロ定義には#defineを使う
Schemeの言語仕様はキューマシンとしての実装に適しているため並列化が容易である
Schemeのブロックはbeginで始まりend.で終わる
SchemeのコンパイラとしてはGHCが有名である


いや、こんなの答えられる人本当に少ないって。だってScheme人口って他の言語に比べてかなり少ないんだぜ。
Javaは1.5からオートボクシングの機能をサポートした

Pythonはインデントによってブロックを表現する
Perlは多くのレンタルサーバに標準でインストールされている
JavaScriptでは関数がファーストクラスのオブジェクトである
Cの文の終わりはセミコロンである
Haskellは純粋関数型言語であり、副作用はモナドでくるむ必要がある
Perlは関数の呼び出し時に括弧を省略することが出来る
Cのマクロ定義には#defineを使う
Rubyのブロックはbeginで始まりend.で終わる
HaskellのコンパイラとしてはGHCが有名である

までは分かるんだが、言語仕様は排他じゃないんだから、これらの条件にSchemeが当てはまるかもしれないし。

そして
Schemeは型に厳格なため整数の加算と浮動小数点数の加算の演算子が異なる

Schemeの言語仕様はキューマシンとしての実装に適しているため並列化が容易である
は全く思いつかない……。

で、これを受けて [西尾泰和のはてなダイアリーにて「Q1ってそんなに難しいですか?簡単な問題のつもりだったんだけど。」といわれていますが、皆さんはどう思われますか?][2] なる質問ができていたw

\# ちなみに自分は関数型言語は嫌いです。よってHaskellもSchemeも嫌いです。Emacsをいじるたびに、なんでEmacsはLISPという面倒くさい言語を採用したんだとか思いながらヒーヒー言ってます。

ということで、プログラミングを学ぶ人にお勧めしたいのはアセンブラですw

Permalink | コメントを読む | hylomの日記