Поддерживает ли Haskell несвязанные переменные?

Поддерживает ли Haskell концепцию несвязанных переменных, как в языке программирования Oz?

1 ответ

Haskell поддерживает переменные только в терминах значений в (монадических) контекстах. Когда вы посмотрите на них, есть определенные, такие как MVar который действительно может быть пустым.

Если вы хотите представить простую обнуляемость значения, Maybe a это идеальный способ сделать это, отдельно от фактического значения, являющегося ссылкой на что-то изменяемое или просто неизменное.


Чтобы расширить и проиллюстрировать:

newIORef :: a -> IO (IORef a)

Но мы можем легко написать newEmptyIORef в качестве таких:

newEmptyIORef :: IO (IORef (Maybe a))
newEmptyIORef = newIORef Nothing

Обратите внимание, что Maybe (IORef a) ≠ IORef (Maybe a),

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