相关疑难解决方法(0)

Haskell中的点运算符:需要更多解释

我试图理解点运算符在这个Haskell代码中做了什么:

sumEuler = sum . (map euler) . mkList
Run Code Online (Sandbox Code Playgroud)

整个源代码如下.

我的理解

点运算符将两个函数sum以及结果map euler和结果mkList作为输入.

但是,sum它不是函数,它是函数的参数,对吧?那么这里发生了什么?

还有,(map euler)做什么?

mkList :: Int -> [Int]
mkList n = [1..n-1]

euler :: Int -> Int
euler n = length (filter (relprime n) (mkList n))

sumEuler :: Int -> Int
sumEuler = sum . (map euler) . mkList
Run Code Online (Sandbox Code Playgroud)

syntax haskell function-composition

82
推荐指数
5
解决办法
5万
查看次数

为什么Data.Text示例不适合我?

这是我在ghci中尝试做的事情:

import Data.Text
strip "  abc  "
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

<interactive>:1:6:
    Couldn't match expected type `Text' against inferred type `[Char]'
    In the first argument of `strip', namely `"  abc  "'
    In the expression: strip "  abc  "
    In the definition of `it': it = strip "  abc  "
Run Code Online (Sandbox Code Playgroud)

我期待这个工作,因为它是在许多网页上给出的,包括这个答案:在Haskell中,你如何从字符串的开头和结尾修剪空格?

我究竟做错了什么?

haskell

9
推荐指数
2
解决办法
2028
查看次数

将字符串列表转换为Haskell中的元组列表

我有一个字符串列表:

[" ix = index"," ctr = counter"," tbl = table"]
Run Code Online (Sandbox Code Playgroud)

我想从它创建一个元组,如:

[("ix","index"),("ctr","counter"),("tbl","table")]
Run Code Online (Sandbox Code Playgroud)

我甚至尝试过:

genTuple [] = []
genTuples (a:as)= do
                   i<-splitOn '=' a
                   genTuples as
                   return i
Run Code Online (Sandbox Code Playgroud)

任何帮助都会受到赞赏谢谢.

haskell

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

标签 统计

haskell ×3

function-composition ×1

syntax ×1