2013-02-26 3 views

ответ

5

Правильный синтаксис:

type List<'a> with 
    member this.abc() = 100 

Вы можете использовать полное имя Microsoft.FSharp.Collections.List<'a>, а также, но тип аббревиатура list<'a> не может использоваться.

Это говорит о том, что использование функций модуля более идиоматично. Вы должны сделать функцию модуля, чтобы легко комбинировать с другими функциями через трубу (|>):

module List = 
    let abc (xs: _ list) = 100 
+0

Спасибо. А также для информации об идиоматическом коде. – dharmatech

2
type Microsoft.FSharp.Collections.List<'T> with 
    member x.IsNotEmpty() = not (List.isEmpty x) 

let xs = [1] 
xs.IsNotEmpty