小编ДМИ*_*КОВ的帖子

从目录中获取文件的排序列表

我想要一个目录中的文件排序列表.如何将该sort函数应用于IOmonad 列表?

import System.Directory 
import Data.List

sortedFiles :: FilePath -> IO [FilePath]
sortedFiles path = do
    files <- getDirectoryContents "."
    return sort files                   -- this does not work
Run Code Online (Sandbox Code Playgroud)

haskell

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

Haskell:过滤列表与那些是整数

我如何过滤列表,以便只返回整数列表?

例如,过滤列表就像[1, 1.2, 2, 2.2]返回一样[1, 2].

haskell list filter

0
推荐指数
2
解决办法
1205
查看次数

在GHCi中工作>但是在加载时没有?

我无法弄清楚为什么我得到两个不同的结果,但我确定它与IO我有所关系,我开始讨厌!

例如:

  ghci> x <- readFile "foo.txt"
  ghci> let y = read x :: [Int]
  ghci> :t y
  y :: [Int]
Run Code Online (Sandbox Code Playgroud)

现在,当我创建该文件并执行相同的操作时,它出现了IO [Int]吗?

foo.txt 是一个仅包含以下内容的txt文件: 12345

有人可以向我解释一下吗?因为我要抢购它!

感谢您的任何见解!

haskell

0
推荐指数
2
解决办法
256
查看次数

检测Haskell中的整数

我正在尝试使用Haskell(我也是全新的)并且每当我尝试使用ghci编译它时,我得到了Not in scope: 'isNumber'什么,我做错了什么?

digits :: [a] -> Bool
digits a = digits a True


digits1 :: [a] -> Bool -> Bool
digits1 [] False      = False           
digits1 [] True       = True            
digits1 (l:ls) True   = digits ls isNumber l
digits1 (l:ls) False  = False
Run Code Online (Sandbox Code Playgroud)

haskell integer

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

替换和删除shell脚本中的字符

我有一个shell脚本来自动化我的程序的构建.我需要改造的版本号码,如V4_5_1-RC14.5.1-RC1.该V应被删除和_应改为..我尝试了几件事,例如用sed:

$NAMEEXT = "V4_5_1-RC1"
$lffNameRSC = ${sed -e "s/V//g" <<< $NAMEEXT}
$lffNameRSC = ${sed -e "s/_/./g" <<< $lffNameRSC}
echo $lffNameRSC
Run Code Online (Sandbox Code Playgroud)

但我收到了错误.

./makerelease.sh: line 113: ${sed -e "s/V//g" <<< $NAMEEXT}: bad substitution
./makerelease.sh: line 114: ${sed -e "s/_/./g" <<< $lffNameRSC}: bad substitution
Run Code Online (Sandbox Code Playgroud)

bash sed

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

将闭包应用为类方法

假设有一个功能def f = { x -> x + 4 }.

有没有办法以某种方式称它为7.f()和得到11

groovy closures

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

长度l1 +1 =>一个用于什么?

agrupa :: String -> [(Char,Int)]

agrupa [ ] = [ ] 

agrupa (x:xs) = let (l1, l2) = span' (==x) xs  

                in (x, (length l1) + 1) : agrupa l2 

span' :: (a->Bool) -> [a] -> ([a],[a])

span' p l = (takeWhile p l, dropWhile p l)
Run Code Online (Sandbox Code Playgroud)

这个函数得到一个字符串,并给我们每个字符有多少?

我的问题是有关1(length l1) + 1,我们为什么需要它?如果你用不同的例子解释它,我真的很感激,因为这样的情况(比如+ 1)我在扫描中已经看过很多次(或者只调试agrope部分)这个功能看看它是如何工作的?

谢谢你的时间

haskell

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

Haskell数据类型和列表

我创建了一个数据类型,其中包含其他元素的列表

data Tarr = Tarr [Int] deriving (Show)
Run Code Online (Sandbox Code Playgroud)

我想将这些列表中的两个连接起来

Tarr [0,2,4,2] ++ Tarr [1]
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个错误

<interactive>:43:1:
    Couldn't match expected type `[a0]' with actual type `Tarr'
Run Code Online (Sandbox Code Playgroud)

如果有(++)(Concat说)的类型类,因为有(==)(Eq)我可以实现它像

class Concat a where
    (+++) :: a -> a -> a

instance Concat Tarr where 
    (+++)  (Tarr a) (Tarr b) = Tarr (a ++ b) 
Run Code Online (Sandbox Code Playgroud)

1)我该如何解决我的问题?

2)为什么(++)没有在类型类中定义?

haskell

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

将IO [String]转换为String

我完成了页面卷曲的内容.找到正确的数据并在其基础上形成以下查询.但数据属于类型IO [String].要求简单String.如何转换IO [String]String

haskell

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

比较Haskell中的2个字符串

我在使用Haskell时遇到了一些麻烦.我正在寻找一个可以比较2个字符串的函数.该函数应输出一个字符串,其中包含两个字符串中的字符.

提前致谢.

haskell

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

输入` - >'时出现解析错误

我正在尝试运行以下代码,它给出了我的解析错误 ->

{- Make sure you have the hxt, url and http packages:
        cabal install hxt
        cabal install url
        cabal install http
        cabal install hxt-curl -}

import Text.XML.HXT.Core
import Network.HTTP
import Network.URI

weatherDataURL = "http://www.weather.gov/xml/current_obs/KAGC.xml"

retrieveWeatherData = do
  case parseURI weatherDataURL of
    Nothing  -> ioError . userError $ "Invalid URL"
    Just uri -> get uri
 {- | Download a URL.  (Left errorMessage) if an error, (Right doc) if success. -}
get uri = do
  eresp <- simpleHTTP (Request uri GET …
Run Code Online (Sandbox Code Playgroud)

haskell xml-parsing

-8
推荐指数
1
解决办法
1322
查看次数

标签 统计

haskell ×9

bash ×1

closures ×1

filter ×1

groovy ×1

integer ×1

list ×1

sed ×1

xml-parsing ×1