相关疑难解决方法(0)

Haskell新手在将列表拆分为一半时出现问题

这是我尝试编写一个函数,将偶数长度列表分成两个相等的一半.

halve :: [a] -> ([a], [a])
halve x 
   | even len = (take half x, drop half x)
   | otherwise = error "Cannnot halve a list of odd length"
   where
      len = length x
      half = len / 2
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

 No instance for (Fractional Int) arising from a use of ‘/’
    In the expression: len / 2
    In an equation for ‘half’: half = len / 2
    In an equation for ‘halve’:
Run Code Online (Sandbox Code Playgroud)

我不明白错误,但我怀疑Haskell需要提前告知len是你可以除以2的东西.那么,我该如何纠正这个例子呢?我的代码是否接近惯用的haskell?我很感激有关我的代码的任何其他意见.

haskell integer-division

5
推荐指数
3
解决办法
2336
查看次数

如何在haskell中将列表拆分为两个?

我正在尝试将列表拆分为两个,这样当输入[1,3,6][2,5]输出时[1,3,6][2,5],我似乎无法弄明白.我能做的最好的是[1,3,6][2,5].

haskell split tuples

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

标签 统计

haskell ×2

integer-division ×1

split ×1

tuples ×1