Размышлял на досуге, зачём введён тип unit в F#...
Причём это не просто синоним void, а обычный класс Microsoft.FSharp.Core.Unit, да ещё и с int _dummy внутри
Хотя unit никогда не создаётся, всегда возвращается адресный null...
Должен же быть смысл, какую-нибудь проблему это решает
Я понимаю, что в ФП функции обязаны возвращать что-либо, но зачем вводить отдельный тип, если можно
| 1 -> ()
за сценой превращать в:
case 1: return;
Как то читал Эрика Липперта про
вариантность void, подумал по началу, что unit — просто уловка, вариантный аналог void'а. Проверил — это не так...
Пока писал этот пост пришло в голову, что может unit нужен для поддержки функциональных типов, всяким FastFunc<T1,T2> нельзя же указать System.Void в качестве generic-параметра...
Я правильно понимаю предназначение unit?
22.07.09 00:56: Перенесено из '.NET'