Скажем, я хочу разветкить поток в блоке do
-notation, но мне не нужен идентификатор потока. Если я напишу
forkIO action
Предупреждение о проблемах GHC
Предупреждение: оператор
do
-notation отменил результат типаThreadId
. Подавите это предупреждение, сказав_ <- forkOS action
Это хорошая идея, поскольку я хочу показать, что программа отбрасывает какой-то результат. Однако таким образом не будет видно, что отбрасывается. Я мог написать
threadId <- forkIO action
но тогда мы скрываем тот факт, что мы не будем использовать ThreadId
где угодно, и GHC правильно предупреждает
Предупреждение: определено, но не используется:
ThreadId
Кажется, что подчеркивание подчеркивания решает обе проблемы:
_threadId <- forkIO action
Мои вопросы: Используется ли переменная, начинающаяся с подчеркивания в соответствии с спецификацией языка Haskell? Насколько портативен он? Это где-то задокументировано? Рекомендуется ли для подобных случаев документировать, что результат игнорируется?