トピック:class or module
- いげ太
- 2008/09/05 11:42
いつクラスを使い、いつモジュールを使うのか。クラスとモジュールをどう使い分けていくかについて、みなさんのご意見を聞かせてください。
- アクセス数:517件
- コメント数:10件
コメント

- 4:masaito5
- 2008/09/06 17:53
OCamlユーザのほうがおそらく多いので、その人たちの意見も聞きたいところですね。
しかし、F#の場合は.Netのライブラリを扱う、F#で書いたプログラムが.Netの他の言語から呼び出されるという特殊事情がありますから、OCamlの場合とは違ってくるのかも知れません。

- 5:いげ太
- 2008/09/06 18:40
おっしゃるとおりですね。とりわけ、「F#
さらに輪をかけてややこしいのが、OCaml
僕は
いわゆる多態的な機能を使いたいって欲求としては同じなのかもしれませんが、そこに流れているコンセプトというか、実現表現というかが違っているので、OCaml

- 6:いげ太
- 2008/09/07 18:12
ちなみに、F#
#light "off"
namespace Igeta.ClassOrModule
type C = class
end;;
module M = begin
end;;
namespace Igeta.ClassOrModule
{
[Serializable, CompilationMapping(SourceConstructFlags.ObjectType)]
public class C
{
}
[CompilationMapping(SourceConstructFlags.Module)]
public static class M
{
}
}
だからといって、C# 
- 7:いげ太
- 2008/09/07 22:26
タイムリーすぎる記事を見つけたので貼っておきます。
オブジェクトは
OCaml の鬼子 - Oh, you `re no (fun _ → more)
http://d.hatena.ne.jp/camlspotter/20080906/1220723583

- 8:masaito5
- 2008/09/08 10:01
とってもタイムリーですね。O'Camlのコミュニティーでは確立した見解らしいので、それに従うのが初心者の私にはよさそうです。
実は私はScalaから流れてきました。あっちでは、もっとオブジェクトが前面に出ています。Scalaを勉強して、前から書きたかったプログラム(Javaでは放り出したやつ)を書いたら動いてしまったので、いったんはファンになりかけました。しかし、Scalaを勉強し続けていったところ、その複雑さに恐れをなすようになり、撤退することにしました。オブジェクトを使わず、モジュールだけを使うという方針でF#を扱うのは簡明でいいですね。

- 9:いげ太
- 2008/09/08 10:55
>
おお。ぜひ「F#
>
僕がそう感じてるという程度の話ですが。。。
Web
んで、F#
>
ただし、F#

- 10:masaito5
- 2008/09/09 16:59
ScalaとF#の言語仕様はたしかに違いますが、実際に使ってみた感触はそれ
以上に違います。言語仕様もさることながら、ライブラリや本が漂わせて
いる雰囲気がだいぶ違うのを感じます。Scalaではクラスを使うのが当然
という雰囲気だし、F#ではむしろ使わないの普通という感じ。
たとえば、Microsoft.FSharp.Collectionsにあるものはほとんどimmutableで、
mutableな対応物はありません。しかし、Scalaだとmutableなものとimmutable
なものはだいたいセットで揃っています。

- 11:いげ太
- 2008/09/10 19:03
>
これ、個人的にはぜひ聞いてみたかったところなので、すごくありがたい情報です。こういう生の声というか、各言語の空気感の違いに言及してる情報って滅多にないんですよね。というか、F#
F#
アプリケーション

- 12:いげ太
- 2008/09/16 15:13
>
あー。もしかしたら、この一文は「class
http://research.microsoft.com/fsharp/manual/namespaces.html
再構築された
ここで特に、Microsoft.FSharp.Compatibility
.NET
いちいち深読みのしすぎなのかもしれませんが、上記の事実は、Lazy
標準ライブラリでさえ、OOP
前へ 1 次へ![]()
コメントする
[block]から[/block]までの範囲はブロック表示されます。
部分的に目立たせたい時や、引用などにお使いください。
[code]から[/code]までの範囲は等幅表示されます。
ソースコードや設定ファイルの記述などにお使いください。
コメントする権限がありません










ちなみに、このトピックは masaito5 さんのブログ エントリに影響を受けて立てたものです。
スタイルガイドラインについて
http://blog.livedoor.jp/masaito5/archives/148441.html