Haskell 如何制作列表构造函数以添加数据构造函数(帐户构造函数列表)
我是haskell的新手,我正在尝试将帐户构造函数添加到列表中,然后根据帐户编号检查该列表,并对其进行某些修改。 我知道如何在没有列表的情况下实现这一点,但我不确定如何使用列表构造函数实现这一点。我使用的是一个简单的网络服务器,用户在其中输入帐号,我将其传输到方法 这是我的通话服务器。(l) 是“开放的1975”。其中,Open用于确定要使用的定义,1975是账号Haskell 如何制作列表构造函数以添加数据构造函数(帐户构造函数列表),haskell,Haskell,我是haskell的新手,我正在尝试将帐户构造函数添加到列表中,然后根据帐户编号检查该列表,并对其进行某些修改。 我知道如何在没有列表的情况下实现这一点,但我不确定如何使用列表构造函数实现这一点。我使用的是一个简单的网络服务器,用户在其中输入帐号,我将其传输到方法 这是我的通话服务器。(l) 是“开放的1975”。其中,Open用于确定要使用的定义,1975是账号 talk :: Handle -> IO () talk h = loop where loop = do
talk :: Handle -> IO ()
talk h = loop
where loop = do
l <- hGetLine h
hPutStrLn h "Reply"
let ws = words l
case (head ws) of ("Open") -> open h ws
("Tranfer") -> transfer h ws
talk::Handle->IO()
谈话h=循环
其中loop=do
我打开h-ws
(“传输”)->传输h-ws
以下是我的构造函数(我不是列表构造函数的用户)
数据账户=账户
{nameArian::String
,namePres::String
,accNum::TVar Int
,accValueA::TVar浮点
,accValueP::TVar Float
}
CreateCount nA nP acc valA valP cR=do
你的问题是什么?我创建列表的方式是否有用,或者应该使用标准列表将帐户添加到列表中?好的。对于“这是做事情的好方法吗?”这样的基于意见的问题,这不是一个合适的论坛。如果您的代码按您希望的方式运行,您可以尝试使用code review StackExchange,而这正是他们要查找的问题。您的问题是什么?我创建列表的方式是否有用,或者应该使用标准列表将帐户添加到其中?好的。对于“这是做事情的好方法吗?”这样的基于意见的问题,这不是一个合适的论坛。如果您的代码按您希望的方式运行,您可以尝试代码复查StackExchange,而这正是他们所寻找的问题。
data Account = Account
{ nameArian :: String
, namePres :: String
, accNum :: TVar Int
, accValueA :: TVar Float
, accValueP :: TVar Float
}
createAccount nA nP acc valA valP cR = do
valA' <- newTVar valA
valP' <- newTVar valP
return $ Account nA nP acc valA' valP'
data Lista = Lista { list :: TVar [Account]}
createList a = do
a' <- newTVar a
return $ Lista a'
open :: Handle -> [String] -> IO ()
open h ws = do
let num = read (unwords (tail ws)) :: Int
accounts <- atomically . sequence $
zipWith3 createAccount ["Arian"] ["Pres"] [x] [0.0] [0.0] [0]
let accVar = accounts
accls <- atomically . sequence $
zipWith createList [accounts]