[F#] Unit type
От: Пельмешко Россия blog
Дата: 21.07.09 18:03
Оценка:
Размышлял на досуге, зачём введён тип 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'
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.