Нижнее / неопределенное значение в F#?

В Haskell есть удобное неопределенное значение, которое можно использовать в качестве заглушки для еще не определенных функций / путей в коде. Есть ли что-нибудь подобное в F#?

3 ответа

Чтобы быть конкретным, вы можете определить такое значение следующим образом:

let undefined<'T> : 'T = failwith "Not implemented yet"

let stub1 (x : int) : float = undefined
let stub2 (x : 'T) : 'T = undefined

Помните, что оценка F# является строгой. Если вы связываете undefined к значению верхнего уровня, это вызовет исключение во время оценки.

Я думаю

failwith "Not implemented"

было бы в значительной степени эквивалентно

Более конкретный и.NET-дружественный способ

let undefined<'T> : 'T = raise (NotImplementedException())

позволяет пропустить ввод сообщения и по-прежнему отличать это исключение от других в блоке перехвата или трассировке стека.

Другие вопросы по тегам