⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 channel.hs

📁 Cores are generated from Confluence a modern logic design language. Confluence is a simple, yet high
💻 HS
字号:
-- | A channel is a uni-directional communication link between two asynchronous processes.module Language.Atom.Common.Channel  ( Channel  , channel  , writeChannel  , readChannel  ) whereimport Language.Atom-- | A channel is a uni-directional communication link that ensures one read for every write.data Channel a = Channel a (Var Bool)-- | Creates a new channel, with a given name and data.channel :: Name -> a -> System (Channel a)channel name a = do  hasData <- bool name False  return $ Channel a hasData-- | Write data to a 'Channel'.  A write will only suceed if the 'Channel' is empty.writeChannel :: Channel a -> Action ()writeChannel (Channel _ hasData) = do  when $ inv $ value hasData  hasData <== true  -- | Read data from a 'Channel'.  A read will only suceed if the 'Channel' has data to be read.readChannel :: Channel a -> Action areadChannel (Channel a hasData) = do  when $ value hasData  hasData <== false  return a

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -