アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
普通のやつらの下を行け -- バッドノウハウ専門家
'91年頃に (スコア:0)
私の卒業した学科 (情報科学科) では2年生にPascalを教えて3年生はSchemeを使ってプログラミングをしていた (Cとかは必要に応じて独習) のですが、その後、2年生がSchemeで3年生はSMLというカリキュラムに変わりました。このため、「SMLでならどう書けばいいか分かるけどCでの書き方が分からない」という学生が続出したそうです。
Re:'91年頃に (スコア:1)
必修系で「教えてもらえる」(ことになっている)言語はこれだけ。他には選択次第ではHaskellやProlog、Schemeにも出会うことになるが、基本的に独習。学期がはじまって最初の宿題の提出がある2週間後までにある程度使える様になれない人材ならば辞めてしまえ、という思想らしい。まあ、だいたい必要があってCやC++およびスクリプト言語もひとつぐらいは自力で覚える。
卒論とか自由実習(理論すくめの卒論の予行演習みたいなもん)だとJavaがまだまだ多いが、ひそかにRubyが広まりつつある。やっぱアルゴリズムが読みやすいのと、開発が楽だからみたいだ。3年間の布教が実ってきた。
def quicksort(arr)
m = arr[0]
quicksort(arr.select {|i| i<m}) + arr.select {|i| i==m} + quicksort(arr.select {|i| i>m})
end
とかす・て・きでアカデミック受け (笑)
Haskellはたまに使うけど、Ocamlは機会なくて使ったことなくて残念。
Re:'91年頃に (スコア:1)
2年で Scheme+Sparc asm 、3年で OCaml+Prolog という感じですね。
あ、3年で VHDL もやります(^^;
C言語は課題で必須なのですが、言語仕様は独習させられます(笑)
最初に Scheme とアセンブリ言語を同時に学ばせるのは、
理論的なプログラミングと、ハードの実際という両端をまず学ばせて、
中途半端な領域はあとから埋めていく、というスタンスだと聞きました。
実際、大学2年まではC言語以外は使い物にならないと思い込んでいた
自分が、もはやCではプログラムを書けない体になってしまったことを考えると
有意義なカリキュラムだったのでしょう(?)。
C or C++ を使えなくなったのは、ガベコレ無しに耐えられなくなったのが
一番大きな要因ですが(苦笑)
でも OCaml の型推論の概念を最初に知ったときには
その賢さに目からうろこが落ちる気分でした。
とっつきは悪いですけど、ぜひ多くの人に触れてもらいたい言語です。
それじゃ動かないって (スコア:1)
def quicksort(arr)
return arr if arr.size<=1
m = arr[0]
quicksort(arr.select {|i| i<m}) + arr.select {|i| i==m} + quicksort(arr.select {|i| i>m})
end
Re:それじゃ動かないって (スコア:0)
(http://www.teu.ac.jp/nsit/~tomoya/Prog/haskellq.htmlから)
> qSort :: [Int] -> [Int]
> qSort [] = []
> qSort (x:xs)
> = qSort [ y | y <- xs, y <= x ] ++ [x]
> ++ qSort [ y | y <-xs, y > x ]
と同じね。
パターンマッチングさいこー
Re:'91年頃に (スコア:0)
参考までに caml で書いてみました。
let rec quicksort = function
[] -> [] (* base case *)
| hd::tl ->
let (lt,gt) = List.partition (fun i -> i < hd) tl in
(quicksort lt)@[hd]@(quicksort gt)
Re:'91年頃に (スコア:0)