Меня интересует как используется nil в различных языках программирования, и вообще насколько это удобно с точки зрения дизайна языка.
В данном треде обсуждаются исключительно динамически типизированные языки.
К примеру в JavaScript есть есть два значения похожих на nil: null и undefined. (Нужно ли было плодить?)
В Scheme есть #f, но нет nil. В Factor тоже нету nil, и используют f. (Нужен ли nil если есть false?)
Кроме того, как-то читал что вроде в первых версиях Objective-C был объект nil (Objective-C не знаю вообще), который поглощал вызовы, был чёрной дырой. Т.е. вёл себя как NaN для чисел. На любое сообщение объект возвращал nil.
В треде приветствуются:
- Ссылки на статьи с обзором различных подходов
- Ссылки на какие-либо интересные языки, относящиеся к теме
UPD: Насколько допустимо трактовать «пустые» объекты (пустой список, пустой словарь и т.д.) как false, и есть ли у такой фичи опасные побочные эффекты, или вообще расположение к каким-либо багам.