Перегрузка оператора + в F #

Итак, у меня есть это:

open System
open System.Linq
open Microsoft.FSharp.Collections
type Microsoft.FSharp.Collections.List<'a> with
    static member (+) (First : List<'a>) (Second : List<'a>) =
        First.Concat(Second)

let a = [1; 2; 3; 4; 54; 9]
let b = [3; 5; 6; 4; 54]


for x in List.(+) a b do
    Console.WriteLine(x)

, и я хочу преобразовать последнюю строку в

for x in a + b do
    Console.WriteLine(x)

, но это дает мне

The type 'int list' does not support any operands named '+'

Документация и примеры в Интернете отрывочны, и, несмотря на мой google-fu, я не смог заставить его работать. В основном, исходя из фона Python, я хочу получить свой синтаксис управления списком столь же краток, как я привык: он не должен требовать более 1 символа в инфиксной нотации.

5
задан Li Haoyi 8 October 2011 в 07:23
поделиться