discriminated-union

    2熱度

    2回答

    F#中是否可能有一個區分的聯合,其值只能被賦值一次?我想像的是這樣的: type DogAttributes = { Age: int; Color: string; } type Dog = | Rex of DogAttributes ({ Age = 5; Color = "Brown"; } | Fido of DogAttributes ({ Age = 3; Color = "

    1熱度

    1回答

    我有一個Option類型: type Option<'a> = | Some of value:'a | None type MyString = string // Syntax type type-name = | case-identifier1 [of [ fieldname1 : ] type1 [ * [ fieldname2 : ] type2

    0熱度

    1回答

    任何人都可以在TypeScript(2.4.1)中解釋以下行爲嗎? 場景:我有一個可能是「紅色」或「紅色和圓形」(修改)的按鈕。我想有以下語法來形容它: button.mods = "red"; button.mods = ["red", "round"]; button.mods = { red: true, round: false }; 來形容這一切,我用了以下接口: interfa

    1熱度

    1回答

    可以說我有一個區分聯合,像這樣: type Route = HomeRoute | ProfileRoute | BlogRoute; type HomeRoute = { route: '/home' } type ProfileRoute = { route: '/profile/:userId', params: { userId: str

    3熱度

    1回答

    我的F#代碼的某些功能接收到的值作爲對象裝箱,即使底層值是鍵入的。如果這個值是一個有區別的聯合,那麼就不可能將它重新裝回到它的F#類型中。下面是一個簡單的例子: type Result<'TOk,'TError> = | Ok of 'TOk | Error of 'TError type ResultA = Result<string, int> let a = Ok "A" le

    0熱度

    1回答

    我有一個XML文檔,其中包含一系列重複的地址,其實際內容取決於所包含枚舉的值。我想這是一種「標籤聯合」 [或「可識別聯合」?]: { <AddressList> <Address> <AddressType type="addressEnum" fixed="CanadianAddress"/> <AddressValue> <Street typ

    0熱度

    1回答

    鏽病documentation gives this example我們在那裏的Result<T, E>實例名爲some_value: match some_value { Ok(value) => println!("got a value: {}", value), Err(_) => println!("an error occurred"), } 有沒有辦法從so

    1熱度

    1回答

    我有學校類(2層構造)識別聯合: type School(name, antiquity) = member this.Name: string = name member this.Antiquity: int = antiquity new(name) = School(name, 0) 而各類建築: type Building = | House |

    3熱度

    2回答

    我有一個地圖,其鍵可能採取各種形狀(我正在使用「形狀」鬆散)。爲了處理這個我創建了一個可識別聯合(DU): type AuxDataKey = | OneString of string | TwoStrings of string * string | OneStringInt of string * int | TwoStringsInt of

    5熱度

    2回答

    如何創建OCaml/F#DU類型,其案例是其他案例的子集? 例如,我想創建一個包含不同符號聲明類型的符號表,例如程序類型,變量和函數。乍一看,我可以看到一個變量包含它的類型,函數也包含一個類型和許多參數變量。所以我想用1 DU,而不是向分隔條件多條記錄或別名: type Symbol = | TypeSymbol of id:string | VariableSymbol of