0

[1,2.0] が有効な構造である int と float のリストを定義したいと考えています。

F# には、たとえば Number から派生した int と float を使用した型または型階層に AND がありますか?

ありがとう。

4

2 に答える 2

5

Numberいいえ、F# / .NET には、Python のような数値タワーも、 Java のような一般的な基本型もありません。

おそらく、目的のために判別共用体を次のように定義できます。

type Number =
    | Float of float
    | Int of int

let x = [Float(3.2); Int(2)] //val x : Number list = [Float 3.2; Int 2]
于 2011-03-13T15:55:46.560 に答える
3

F# には、Lisp/Scheme のような数値の塔はありません。

サポートされている唯一の種類の共用体は、タグを含める必要がある非結合共用体です。あなたは書くことができます:

type Num = Int of int | Float of float

[Int 1; Float 2.0]

上記の値は typeNum listです。要素を消費するには、パターン マッチングを使用します。

match num with
| Int x -> printf "%i" x
| Float x -> printf "%f" x
于 2011-03-13T16:06:21.027 に答える