

F# Interactiveでは値と一緒に型も表示してくれます。

[code]

    > 1;;
    val it : int = 1
    > Some 1;;
    val it : int option = Some 1
    > printf;;
    val it : (Printf.TextWriterFormat<'a> -> 'a) = <fun:clo@1>
    
[/code]

では、型を指定してその型の宣言を調べる方法はないでしょうか？

単純に型名だけを指定すると、コンストラクタの型が表示されてしまいます。

[code]

    > Printf.TextWriterFormat<_>;;
    val it : arg00:string -> PrintfFormat<'a,System.IO.TextWriter,unit,unit> =
      <fun:clo@5-1>
    > Option<_>;;
    
      Option<_>;;
      ^^^^^^
    
    stdin(7,1): error FS0039: 値またはコンストラクター 'Option' が定義されていません
    
[/code]

そうではなく、.fsi ファイルに書くような、型自体の宣言が見たいのです。

F# Interactive上で型を定義したときには似たようなものが表示されるので、これを既存の型にも適用できないものでしょうか。

[code]

    > type Foo = A of int | B with
    -     member self.Hoge(x) = 1;;
    
    type Foo =
      | A of int
      | B
      with
        member Hoge : x:'a -> int
      end
    
[/code]

関数の型が気になったときにF# Interactiveに入力するだけでわかるように、型の宣言も同じように調べられたらブラウザ開かずに済むのになと・・・。


CC BY-SA 3.0
2016-09-03T13:50:45.440
28671
2016-09-03T23:08:11.923
2016-09-03T17:15:56.223
8000
8000
question
f#
F# Interactiveで指定した型の宣言を調べたい


ちょっと違うのかもしれないですが（定義に関してはソースを見る必要があるかと思います）、  
多分、`typeof` のことかなと思います。

`typeof<型>`のように使います。

例：`typeof<Option<_>>;;`


CC BY-SA 3.0
2016-09-03T14:02:40.257
28672
2016-09-03T14:02:40.257
5044
28671
answer


回答になっているかわかりませんが、F# interactiveでなくF#プロジェクトであればF12 Go To
Definitionはブラウザーでドキュメントを開いたりしますが、Alt+F12 Peek Definitionならエディタ上に型定義を表示してくれます。


CC BY-SA 3.0
2016-09-03T23:08:11.923
28673
2016-09-03T23:08:11.923
4236
28671
answer