相关疑难解决方法(0)

如何在Haskell中解析IO String?

我遇到了Haskell的问题.我的文本文件看起来像这样:

5.
7. 
[(1,2,3),(4,5,6),(7,8,9),(10,11,12)].
Run Code Online (Sandbox Code Playgroud)

我不知道如何获得前两个数字(上面的2和7)和最后一行的列表.每行末尾有点.

我试图构建一个解析器,但是名为'readFile'的函数返回Monad,称为IO String.我不知道如何从这种类型的字符串中获取信息.

我更喜欢在一系列字符上工作.也许有一个函数可以从'IO String'转换为[Char]?

string io monads parsing haskell

28
推荐指数
4
解决办法
2万
查看次数

将IO String转换为String

我有问题将IO String()转换为String()下面是评估表达式的函数.

foobar :: String -> IO String

eval :: String -> Sh () ()
eval x =  do
 s <- foobar x
 shellPutStrLn $ s
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为eval返回IO String而不是Sh.一些IO在一个函数内完成的那一刻它将它转换/篡改成IO String.如何防止转换或将IO字符串转换为字符串?

io monads haskell types

0
推荐指数
1
解决办法
3115
查看次数

更改函数以支持IO String而不是String

我通过以下方式获得IO String:

import Data.Char
import Network.HTTP
import Text.HTML.TagSoup

openURL :: String -> IO String
openURL x = getResponseBody =<< simpleHTTP (getRequest x)

crawlType :: String -> IO String
crawlType pkm = do
  src <- openURL url
  return . fromBody $ parseTags src
  where
    fromBody = unwords . drop 6 . take 7 . words . innerText . dropWhile (~/= "<p>")
    url = "http://pokemon.wikia.com/wiki/" ++ pkm
Run Code Online (Sandbox Code Playgroud)

我想通过以下方式解析其数据:

getType :: String -> (String, String)
getType pkmType = (dropWhile (== '/') $ fst …
Run Code Online (Sandbox Code Playgroud)

io haskell

0
推荐指数
1
解决办法
86
查看次数

标签 统计

haskell ×3

io ×3

monads ×2

parsing ×1

string ×1

types ×1