Спецификация языка F# обновилась:

HTML

PDF

Просматриваю методом случайного тыка, наткнулся на такие фишки:

6.5.7 Slice Expressions

Илья Ермаков как-то восхищался этими самыми slice'ами в языке Go, вот никак не могу понять, что такого в этой фишке? Отрезки массива, что ли? Так в "Адском программировании" это ещё описывалось:
> -- А.Гавва писал(а):
> 4.1.5 Отрезки (array slices)Для одномерных массивов Ада предусматривает удобную возможность указания нескольких последовательных компонент массива. Такая последовательность компонент массива называется отрезком массива (array slice).
В F#, правда, эти отрезки можно делать не только для одномерных массивов, но и для двумерных тоже. А как там у вас в Go?

6.5.8 Member Constraint Invocation Expressions

Ограничения на типы параметров функций, внешне похоже на утиную типизацию:
## Код:
```
For example

let inline speak (a: ^a) =
    let x = (^a : (member Speak: unit -> string) (a))
    printfn "It said: %s" x

    let y = (^a : (member MakeNoise: unit -> string) (a))
    printfn "Then it went: %s" y

type Duck() =
    member x.Speak() = "I'm a duck"
    member x.MakeNoise() = "quack"

type Dog() =
    member x.Speak() = "I'm a dog"
    member x.MakeNoise() = "grrrr"

let x = new Duck()
let y = new Dog()
speak x
speak y

Outputs:

It said: I'm a duck
Then it went: quack
It said: I'm a dog
Then it went: grrrr
```
