OberonCore https://forum.oberoncore.ru/ |
|
The F# 2.0 Language Specification (RC) https://forum.oberoncore.ru/viewtopic.php?f=72&t=2506 |
Страница 1 из 1 |
Автор: | Geniepro [ Четверг, 01 Апрель, 2010 08:16 ] |
Заголовок сообщения: | The F# 2.0 Language Specification (RC) |
Спецификация языка F# обновилась: HTML Просматриваю методом случайного тыка, наткнулся на такие фишки: 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 |
Автор: | Илья Ермаков [ Четверг, 01 Апрель, 2010 16:17 ] |
Заголовок сообщения: | Re: The F# 2.0 Language Specification (RC) |
Geniepro писал(а): Илья Ермаков как-то восхищался этими самыми slice'ами в языке Go, вот никак не могу понять, что такого в этой фишке? Отрезки массива, что ли? Всё бы Вам про высокоуровневые рюшки. Слайс в Go - это двоичная область памяти, границы которой проверяются. Системное (практически машинное, если б процы лучше были) понятие. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |