パスワードを忘れた? アカウント作成
3518 story

Objective Caml 3.05 18

ストーリー by Oliver
every_thing_is_a_func() 部門より

yt曰く、"型推論などの便利な機能と充実したライブラリにより一部に根強いファンがいるO'Caml ですが,3.05 がリリースされました.主な変更点は多数のバグフィックスはもちろんのこと、書式付き入力用 Scanf モジュールの新設、すべてのプラットフォームで 64 bit integer が利用可能になり、ocamldocが新たに配布ファイルに含まれるようになった、など色々です.
関数型プログラミングは,ちとくせがあるかと思いますが,Emacs でコードを書きつつ,ちょこっとずつ実行させながら動作を確認しつつ,最後にネイティブコードを出力させるといった便利なプログラミングが出来るので,これを機にみなさん使ってみてはいかがでしょうか?"

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 変更点 (スコア:2, 参考になる)

    by tix (7637) on 2002年08月01日 0時23分 (#136954) ホームページ
    すみませんが、宣伝ではなく、すでに OCaml を知っている人向けの情報です。 :)

    3.05 のアナウンス [inria.fr]によると、 3.04 から 3.05 への変更点の中では、 first-class polymorphism [inria.fr] の導入が大きいようです。が、 first-class polymorphism と mutable を同時に使うと(案の定?)まだ不安定 [inria.fr]のようで、修正して 3.06 をすぐ出す予定 [inria.fr]とのことです。

    ぼくは class をあまり使わないので、残念ながら first-class polymorphism の恩恵がわからないのですが。
    --
    鵜呑みにしてみる?
  • by Anonymous Coward on 2002年08月01日 0時19分 (#136949)
    コメントが付かないのは、投稿者も採用者も読者もみんな知らないって罠?

    マイナーなものはこういう機会に宣伝しまくってくれたほうが良いような気がする。
    そうすれば、それをタネに議論もできるし。
    なんでマイナーなのかわかるかもしれないし:-)
  • by Anonymous Coward on 2002年08月01日 0時57分 (#136990)
    SML (Standard ML) でプログラム書いていたことがあります。Objectiveの付く前のCamlも触ったな。
    私の卒業した学科 (情報科学科) では2年生にPascalを教えて3年生はSchemeを使ってプログラミングをしていた (Cとかは必要に応じて独習) のですが、その後、2年生がSchemeで3年生はSMLというカリキュラムに変わりました。このため、「SMLでならどう書けばいいか分かるけどCでの書き方が分からない」という学生が続出したそうです。
    • by Oliver (4) on 2002年08月01日 3時40分 (#137059) ホームページ 日記
      うち( informatik.uni-muenchen.de )だと第一半期の情報学Iが関数型オンリーでSML、情報学IIがオブジェクト指向でJava、情報学IIIがアセンブラでspimでMIPSアセンブラ。最初が関数型なのは、入学前からプログラミングしていた新入生達が楽できない為なのと、逐次実行型の後に関数型を習うとあまりきれいな関数がかけない為だそうだ。

      必修系で「教えてもらえる」(ことになっている)言語はこれだけ。他には選択次第では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は機会なくて使ったことなくて残念。
      親コメント
      • by mass (8786) on 2002年08月01日 6時42分 (#137092)
        うちの情報科学科で必修でやる言語としては
        2年で Scheme+Sparc asm 、3年で OCaml+Prolog という感じですね。
        あ、3年で VHDL もやります(^^;
        C言語は課題で必須なのですが、言語仕様は独習させられます(笑)
        最初に Scheme とアセンブリ言語を同時に学ばせるのは、
        理論的なプログラミングと、ハードの実際という両端をまず学ばせて、
        中途半端な領域はあとから埋めていく、というスタンスだと聞きました。
        実際、大学2年まではC言語以外は使い物にならないと思い込んでいた
        自分が、もはやCではプログラムを書けない体になってしまったことを考えると
        有意義なカリキュラムだったのでしょう(?)。

        C or C++ を使えなくなったのは、ガベコレ無しに耐えられなくなったのが
        一番大きな要因ですが(苦笑)

        でも OCaml の型推論の概念を最初に知ったときには
        その賢さに目からうろこが落ちる気分でした。
        とっつきは悪いですけど、ぜひ多くの人に触れてもらいたい言語です。
        親コメント
      • 終了条件がないから無限に再帰してSystemStackErrorになります。

        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
        親コメント
        • Haskellのこれ
          (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 ]
          と同じね。

          パターンマッチングさいこー
      • by Anonymous Coward
        ruby は知らないんですが、その quicksort は止まるのでしょうか?

        参考までに 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)
    • by Anonymous Coward
      うちの大学では3年でOcamlやりました。Ocamlの最終課題はPrologインタプリタとか。
  • by Anonymous Coward on 2002年08月01日 1時45分 (#137018)
    camlでなんかサンプルコードかいてよ。
    8クイーンとかでもいいから。
  • by Anonymous Coward on 2002年08月01日 2時33分 (#137041)
    ここ [2ch.net]のやつとか見れなくなってるし、相変わらず英語読めない人にはつらい状況なわけ?
typodupeerror

海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs

読み込み中...