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

Caml for .NET: F# 47

ストーリー by Oliver
分かりやすいネーミング.... 部門より

Anonymous Coward曰く、" C# に続き F# なる処理系が。ベースは Caml (Objective Caml) みたいです。個人的には C# より遙かに好印象。(単に Caml が好きなだけ(笑))"

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

    by seldon (5637) on 2002年06月05日 14時57分 (#102880)
    F#っていうからてっきりFORTRANかと思った
    • by skimsr (9280) on 2002年06月05日 15時16分 (#102889) ホームページ 日記
      >F#っていうからてっきりFORTRANかと思った
      その前にF++が出る必要があるかと(^^;

      ところで,C#がトニックならF#はサブドミナントになるのかな?
      それから類推するに,C#とF#はやっぱ親和性が高いんでしょうか。

      # 上記はジョークですので,技術・音楽の両面からのツッコミを
      # よろしくお願いします。すいません。
      親コメント
    • by Anonymous Coward
      私はてっきりForth [forth.org]かと。
  • by kyle (3923) on 2002年06月05日 15時14分 (#102888) 日記

    D#, G#, A#――。

    # 平均律を捨てれば、まだいっぱい使える、って何を?

    • by seldon (5637) on 2002年06月05日 15時36分 (#102902)
      # 平均律を捨てれば、まだいっぱい使える
      おジャ魔女#とか...

      #すぐに終わって、ついにはどっか~んと自爆しちゃうわけだ

      親コメント
    • by es++ (5434) on 2002年06月05日 15時53分 (#102910) 日記
      和式表記になおしてみると、音階ネタは非常に奇妙にみえますです。
      「嬰ハ言語(C#)」「嬰へ言語(F#)」

      それはさておき、やっぱり「F sharp」じゃなくて「Fis」と読んでしまうのでしょうか?
      親コメント
    • E# とか B# とかもおっけーだし、ダブルシャープ (U+1D12A [unicode.org]) なんてのもあるよ。ただ、両方ともハ長調・イ短調では使いませんが。

      親コメント
    • by G7 (3009) on 2002年06月06日 3時56分 (#103278)
      なんかこっちのほうがトピックメインな話題であるかのようですが(笑)、
      #つまり、みーんなオフトピ状態(笑)

      >平均律を捨てれば

      これ、平均律かどうか、という問題なんでしょうか?

      それ以前に、ピアノでいう「白鍵」「黒鍵」という問題であるような気もするんですが…

      また、西洋音階であるかどうか?という問題でもあるような気がするのですが…
      西洋音階(いわゆるドレミ)で、かつ平均律じゃない音程のとりかたってのも、色々有りますから。ベルクマイスターとかさぁ…

      >まだいっぱい使える

      あんまり変なのになると名称がつかなくなる罠。
      ただの数字(周波数かなにか)にならざるを得ない罠。

      で、ただの数字は商標として認められない罠(以前Intelがハマった罠)。
      親コメント
  • C#の時も一瞬だけ考えたけれどこんどはF#だとぉ。これは差別だ、管楽器奏者を苦しめるための言語に違いない。

    オープンソースの管楽器奏者達よ、対抗策としてD♭とG♭を開発するのだ!開発のベースは、えっと、DはDylanのDでGはGuileのGか、、、。しょぼん。

    #どっちの意味でも、めんどっちぃのはたいして変わらなかったりして。
    • F# はト長調で、C# はニ長調で出てくるので、まだ守備範囲内ですよ。次の G# (イ長調) が出てきたら萎えるけど。

      アルサクやバリサクにはきついでしょうが。

      親コメント
    • A管ならそんなに苦しみませんが(笑) まぁ、B管のペットやクラばかりの環境では辛そう ^^;

      親コメント
      • 便乗質問。
        TbはB管なんでしょうか? C管なんでしょうか?
        いまだに解りません。
        • あくまで推測ですが B管だと思います。 第1ポジション(一番手前のポジション)での倍音を考えると C管とは思えない...

          # しかしこのスレ、音楽の話ばかりだ...

          親コメント
          • はい、確かに基音はBです。だけどTbは楽譜を素(C管読み)で読みます。

            「C管だっ!!移調読みしないんだからっ!!」
            「B管だっ!!Cは6ポジだろがっ!!」

            …となるわけでして…。

            # 管弦楽に興味の無いヒトごめんなさいごめんなさいごめんなさい
            • あのぉー。本当にこんなこと↓言う人いるんすか???

              >「C管だっ!!移調読みしないんだからっ!!」

              管楽器の調性と記譜の話をごっちゃにしているようですが。

              さらに言うと、Tbな人はハ音記号がどこに(3、4種類程らしいですが)ついていても大抵読めるって話を聞きました。記譜上では全く移調していなくても、頭の体操はたっぷりできるらしいです。
              親コメント
        • いわゆるTbはBbですな。Tenor/BassだとF管のトリガーが付いてる。Bassだと、F管ともうひとつG管とかGb管とかついてるそうな。子ども向けだと、引くと管が閉じてC管になるのもあるらしい。Altoは、、、Eb???

          #でも、どれでもC#とF#の音階は面倒臭そうな。
          親コメント
        • Euph.をBの楽譜で覚えてしまったので、Cの楽譜だと
          指が追いついていきません・・・

          #脱線ばかりだとアレなので・・・
          F#って名前にしたのは、Functionalな言語って意味でしょうかね?

          ほらふきの独り言
          --
          Copyright (c) 2001-2014 Parsley, All rights reserved.
          親コメント
        • 楽器は B 管です。が、楽譜は in C のヘ音が普通です。

          ついでに、Euph と Tuba も B 管ですが楽譜は C のヘ音です。ぼくは Euph 吹きですが、ピストンを押さずに出る音は「シのフラット」だと思ってます。逆に in B の楽譜を読むのは苦手。まだト音の in Es 楽譜のほうが読みやすい (そのまま読める)。

          なお、Euph 吹きのあいだでは、B 読み派 (ト音の in B 楽譜が好きな人) と C 読み派 (ヘ音の in C 楽譜が好きな人) がいて、どちらかというと B 読み派のほうが若干多いのではないかと言うのがぼくの印象です。なかにはヘ音の in C の楽譜を B 読み (C のことをレと呼ぶ) するツワモノも若干いるようです。その点、Tb 吹きはほとんどが C 読み派のようです。

          親コメント
          • by Jadawin (2174) on 2002年06月05日 19時47分 (#103057) 日記
            へーい。

            >なかにはヘ音の in C の楽譜を B 読み (C のことをレと呼ぶ) するツワモノも若干いるようです。

            kubotaさん基準だと私はツワモノなようです。でも、これって私の年代だと少なくないと思いますよ。学校の音楽の時間に移調読み(どの調でも基音をドと読む)を習ってるんで。この世代だと、Bb管の楽器は、Bb=ドで読んでるのが普通だと思います。

            #で、実音の呼称に困ってドイツ式を覚える。アメリカ式はギター用。
            #でも、イロハはなぜかほとんど使わない。とかいう妙な領域に突入。

            kubotaさんは、学校で移調読みを習った世代じゃないですよね?おそらく。
            親コメント
          • by nekurai (6253) on 2002年06月05日 20時02分 (#103063) 日記

            Ehphだとト音B/ヘ音C/へ音Bの 3 種類の楽譜が入ってる場合があるのでどれでも気にしないで読めるようになりました。ついてにHornとかSaxのパートを奪い取る(笑)クセがあったのでト音F/ト音Esも普通に読んでいました。慣れだけの問題なのでツワモノでなくても読めますよ。特に自分のパートの練習をするより他人のパートを吹いて遊ぶクセのある人なら ^^)

            # ちなみに中学ではEuphとOboeを掛け持ちで吹いてた...
            ## 高校に入ってViolaにまで手を出してたし... :-)

            親コメント
            • ヘ音B、とぼくが書いたのは、ヘ音Cで書かれた楽譜を演奏するんだけど、 その楽譜を声に出して読むときにはB読みする、ということです。 つまり、ヘ音で下から2番目の線に串刺しになった音符のことを「ド」と いう名前で呼ぶ、ということです。 ちょうど、別コメントにあった、in C の変ロ長調の楽譜を移動ドで読む、 というのと同じことです。

              Euph 用楽譜でいえば、 楽譜そのものがヘ音B、というのは、いままで1回しか見たことがありません。 ト音Bの楽譜しかない、というのも数回。たいていは、ヘ音Cのみか、 ヘ音Cとト音Bの両方が入っているかのどちらかです。

              奪う、ということでいえば、バスーン、テナサク、バリサク、 ホルン、バスクラ、くらいの優先順位かな。ホルンはもっと高い 優先順位にしたいんだけど、in F の楽譜を読むのが苦手なのと、 演奏のほうの体力がもたないのとで、ちょっと遠慮ぎみ。 バスーンの優先順位が高いのはまあ当然ですが。 ちなみにオーボエもバスーンも、間近で実物を見る機会は大学に入るまで ありませんでした。(さらに、去年はペダルティンパニとチャイムと ドラに初めて手で触れました)。

              どちらにせよ、移調楽譜は苦手で、in B の楽譜も、やると決まれば in C に書き換えるくらいです。いろいろ読める人は尊敬します。

              トランペットなんかだと、調の違う何本かの楽器かける何種類もの 楽譜、の組み合わせを演奏できたりする人がいて、感動的です。

              親コメント
    • 対抗策としてD♭とG♭を開発するのだ!

      それは新規開発の言語の名称としては採用されにくいのではないでしょうか。

        "#" は半音「上がる」ので、上昇や進歩に結びつけて使われているいるのだと思います。
      "♭" は、半音「下がる」ので、下降, 後退, 機能限定版のイメージが出てきそう。
      親コメント
    • >管楽器奏者を苦しめるための言語

      までは判るけど、それがどうして、

      >鍵盤楽器派か?

      鍵盤に繋がるんですか?

      弦楽器だって有るのに。

      #どうでもいいが俺が弾けるのは(鍵盤と)ギター類だけ。
      #5度調弦のバイオリン族は全く受けつけませんでした(^^;;;;

      よだん:
      金管は疎いんで便乗質問。
      TRONもといトロンボーンにも、B管とかいう言いかたは有るんですか?
      あんな無段変速(笑)な奴にも?

      >対抗策としてD♭

      DelphiをCに近づけたような言語でしょうか?(笑)
      そういや無関係とは思いますが次期Delphiは.NET対応だそうです。ぉぃぉぃ…
      親コメント
      • >よだん:
        >金管は疎いんで便乗質問。
        >TRONもといトロンボーンにも、B管とかいう言いかたは有るんですか?
        >あんな無段変速(笑)な奴にも?

        その辺りは他の楽器と変わらずいくつかの調のものがあります。
        構造がシンプルである分、他の楽器よりも調の種類が多い
  • by Jadawin (2174) on 2002年06月05日 17時44分 (#102968) 日記
    「F#がどんな言語か」はあるけど、「なぜF#という名前か」ってのは書いてないような。

    #.Netって色んな言語をサポートすることで、間口の広いプラットフォームを目指すと同時に、
    #次世代のプログラム環境としてどんなものが良いかを模索してたりするんだろうか?
  • by who-am-i (2922) on 2002年06月05日 17時44分 (#102970)
    Camlってどうなんでしょう?

    元ネタのリンクを見てみたけれど、英語がよーわからんので いまいちピンと来ません。

    # っつう人が多いから『おもしろおかしい』ネタばかり増えるんだろうけど。

    誰か「こんな感じ」っての、教えてよ。
    • Re:まじめな話 (スコア:2, 参考になる)

      by visha (779) on 2002年06月05日 18時06分 (#102986) 日記

      ヨタですが、ラクダをPerlに奪われて悔しい思いをしてるんではないかと邪推してます(笑)。ここ [caml.org]を見ても、やはりラクダだし。

      それはさておき、「強い型の関数型言語でMLのお仲間」だそうですから、系譜としてはLisp系ってことになるのかな?(よくわかってない)

      親コメント
      • by Jadawin (2174) on 2002年06月05日 18時49分 (#103023) 日記
        「強い型の」ってのが重要なんだと思います。

        つまり、あらゆる変数、関数の型を言語処理系が押えているので、ありがちでしかも意外と見付かりにくい、型の誤りによるバグをコード実行前(構文解析直後)に検出する、というのが一番の強みではないかと。

        #でも、これはMLの特徴で、camlがそこからどんだけ進化しているかチェックしてないっす。
        #一つにはオブジェクト指向対応なんだと思いますが。

        あ、ちなみに言語としての特徴はLispの系譜を引いていますが、Lispみたいにカッコまみれの構文じゃないです。

        #あれはあれで嫌いじゃないですけど。
        親コメント
      • by jpf (4379) on 2002年06月06日 17時32分 (#103725) 日記
        O'Reilly の本は、なぜか [amazon.fr]です。フタコブラクダ使えばいいのに。 英語版は ここ [inria.fr] で公開されてます。興味がある方はどうぞ。日本訳の動きもあります。
        親コメント
    • Re:まじめな話 (スコア:2, 参考になる)

      by tix (7637) on 2002年06月07日 14時48分 (#104216) ホームページ
      ぼくが Caml の機能で初めに C よりいいと思ったのは、直和型です。ぼくは Pascal をよく知りませんが、 Pascal にある「タグつきレコード型」という機能は Caml の直和型と同じ機能だと思います。

      直和型について、何がよいのかを C と比較して例だけ書いてみます。「x+y」のような「数式」を扱うプログラムを書いているとして、型 expr を

      type expr = Const of int | Var of string | Plus of expr * expr | Times of expr * expr

      のように定義しておくと、 Const(100) とか Plus(Var("x"), Var("y")) とかが expr 型の値として使えるようになります。

      C で同じようなことをするなら、
      struct expr {
          int tag; /* 0:Const, 1:Var, 2:Plus, 3:Times */
          union {
              int cnst; /* tag==0 のとき有効 */
              char *var; /* tag==1 のとき有効 */
              struct { /* tag==2 || tag==3 のとき有効 */
                  expr *x;
                  expr *y;
              } operands;
          };
      };
      のようになるでしょう。 tag の値が0以上3以下であることや、 tag の値と他のフィールドの使いかたが合っていることは、プログラマが注意していなければなりません。

      とくに、この型の値を受け取って処理するとき、 C では switch 文を使って書くことになると思いますが、そうして書かれたプログラムを読む際は、「この switch 文は本当にすべての場合を処理しているのだろうか?」ということを人間が意識しながら読まなければならず、負担がかかります。

      このようなとき、 Caml ではパターンマッチ(match 式)という構文を使って書きます。すべての場合を処理しないパターンマッチは普通使わないので、コンパイラが警告を出してくれます。そのため、警告が出ないよう行儀よく書かれたプログラムを読む際、パターンマッチですべての場合が尽くされていない可能性を心配する必要がありません。

      直和型だけだと「Pascal でいいじゃん」と言われるかもしれませんが、 Caml はほかにもいろいろ素晴らしいです。高階関数の扱いが簡単なのもいいです。
      --
      鵜呑みにしてみる?
      親コメント
  • by mass (8786) on 2002年06月05日 18時46分 (#103020)
    ML がメジャー言語にのし上がれる機会がようやく訪れてくれました……
    (応用によりますが)とても綺麗にプログラミングできる言語ですので
    皆さまもぜひこの機会に触れてみてください。
    型は素晴らしい(ぉ

    でも、取っ付きが悪いので結局皆から無視されるという罠。

    しかし、GUI ライブラリも整うのでしょうし、
    ML ユーザとしては言うことなしです。
    これで、安心して世間向けのソフトを Caml でかけます。
    # いままでは Win 上でも TK or GTK だったのでした
    • by tix (7637) on 2002年06月06日 2時05分 (#103246) ホームページ
      F# の登場によって、「ML (プログラミング言語)」とか「ML (メーリングリストでないほう)」とか書かなくていい日が来ることを切に願います。 :)

      .NET 用の ML を出すと言っても、所詮“なんちゃって ML”に違いない、と思っていたので、簡単な例 [microsoft.com]を見て、案外 ML なので驚いています :)

      OCaml との比較 [microsoft.com]によると、 F# では OCaml と違い、モジュールで型を type t = int のように定義しておいて、 signature に type t と書くことで型の定義を隠す、というのができないそうです。一方、 type t = T of int と書けば type t という signature を与えて型の定義を隠すのは OCaml と同様に可能だそうで、 F# の実装を垣間見たような気がします。
      # いままでは Win 上でも TK or GTK だったのでした
      GUI ライブラリではありませんが、 Windows 版 OCaml で Win32 API の一部を使うための OCaml-Win32 [speakeasy.org] というラッパーがあります。使ったことはありませんが。
      --
      鵜呑みにしてみる?
      親コメント
    • by TxG (7966) on 2002年06月05日 19時04分 (#103033)
      情報科学系の学科以外で使われているという話を聞かなかったですね(笑)<ML

      次はScheme!

      # 僕は情報科学な人間ではありませんが。
      親コメント
      • by mass (8786) on 2002年06月06日 20時53分 (#103848)
        Microsoft .NET Language Partners [microsoft.com] にいろんな言語が名乗りを上げていますね。
        Scheme や SML 、 Haskel なんて名前も。
        F# もここらへんの .NET のアドイン言語処理系の一種なのでしょうね。
        ・・・でも、このページには載っていないですね。
        F# は .NET の中でいったいどういう立場なのかが気になります。
        親コメント
        • by Anonymous Coward
          > Scheme や SML 、 Haskel なんて名前も。

          Haskellだよ。SMLがMachine Languageになってるのはなんか意味があるんだろうか?
      • > 次はScheme!

        きちんと計算機科学を勉強した人なら大学1年のときにかならずやるもののはずだが…
    • そういえば、も~ [inria.fr]が、ObjectCaml+Tkですね。
typodupeerror

開いた括弧は必ず閉じる -- あるプログラマー

読み込み中...