小编Ale*_*uza的帖子

Haskell中的运行长度编码

import Data.List

data Encoding = Multiple Int Char | Single Char deriving (Eq,Show,Ord)
Run Code Online (Sandbox Code Playgroud)

运行长度的编码

encode :: String -> [Encoding]
encode inputString =encoding (group inputString) []


encoding :: [String] -> [Encoding] -> [Encoding]
encoding groupString xs=
if (length groupString == 0)
    then xs
else
    case (head groupString) of
            ([c]) ->encoding (tail groupString)  (xs ++ [Single c])
            (x) -> encoding (tail groupString)  (xs ++ [Multiple (length x) (head x)])
Run Code Online (Sandbox Code Playgroud)

运行长度的解码

decode :: [Encoding] -> String
decode listString = decoding listString []              

decoding …
Run Code Online (Sandbox Code Playgroud)

haskell

3
推荐指数
1
解决办法
789
查看次数

Haskell:fromList难度大

testing4 = Map.fromList
          (fmap (\(userid,email)->( User {userId=userid,userEmail=email},( (t2 userid), (t3 userid)   ))) userList)
          where
          t2 userid= fmap (\(_,ppid,pact,pclas,pdes)-> Permission {permissionId=ppid,permissionAction=pact,permissionClass=pclas,permissionDescripton=pdes}
                ) (DL.filter (\(puid,_,_,_,_)-> userid == puid) individualPermissions)

          t3 userid =DL.nub $ fmap (\(_,rid,_)->
                                Map.fromList ( 
                                    fmap (\ (_,rrid,rrname) -> 
                                                    (Role {roleId=rrid,roleName=rrname},
                                                        fmap (\(_,_,ppid1,pact1,pclas1,pdes1)-> 
                                                                    Permission{permissionId=ppid1,permissionAction=pact1,permissionClass=pclas1,permissionDescripton=pdes1})
                                                                                    (DL.filter (\(plUID,plRID,_,_,_,_)-> plUID == userid && plRID == rrid) permissionList)  )
                                                )  (DL.filter (\(ruid,_,_) -> ruid == userid && (case rid of
                                                                                                        Just _ -> True
                                                                                                        Nothing -> False)
                                                                                                    ) roleList)
                                            ) 
                                        ) rolePermissions
Run Code Online (Sandbox Code Playgroud)

我想要这个类型地图用户的功能([权限],地图角色[权限]),但我得到它作为地图用户([权限],[地图角色[权限]])

这是带有数据 …

haskell

-2
推荐指数
1
解决办法
93
查看次数

标签 统计

haskell ×2