Собсвенно как на F# изобразить аналог
class A
{
class B {}
}
?
очевидные решения типа
type A =
type B = class end
не прокатывают. а expert f# говорит:
A type definition can contain
members and nested type
definitions.
?
Здравствуйте, Jack128, Вы писали:
J>Собсвенно как на F# изобразить аналог
Точно так же, как и partial-классы — никак
J>а expert f# говорит:
Не надо верить Expert F#, надо верить
спеке, которая в
8.6 Class Types говорит, что внутри определений типов не может быть определений других типов.
Здравствуйте, Jack128, Вы писали:
J>Собсвенно как на F# изобразить аналог
J>J>class A
J>{
J> class B {}
J>}
J>
J>?
В C# такой трюк нужен только потому, что нет понятия модуля. Функцию модулей вынуждены выполнять классы, то есть слово "class" в определении "class A" используется не по назначению.
В F# же модули, как и типы, транслируются на самом деле в классы .NET'а. Так что обьявление типа внутри модуля -- уже является объявлением класса, вложенного в другой класс...
Хотя непонятно, почему тут такое ограничение в F#. Ведь в C# можно делать и два, и три вложенных класса, а, возможно, глубина вложенности классов вообще не ограничена?