小编hey*_*yyo的帖子

如何缩短像这样的Haskell实现?

我有一个功能,有很多看起来像这样的警卫:

function 
    | p `elem` [0,1,2,3,4,5,6] = [0,1,2,3,4,5,6]
    | p `elem` [7,8,9,10,11,12,13] = [7,8,9,10,11,12,13]
    | p `elem` [14,15,16,17,18,19,20] = [14,15,16,17,18,19,20]
    | otherwise = []
Run Code Online (Sandbox Code Playgroud)

我确信我可以用Haskell写得更短.如果没有,那就没关系.我是Haskell的新手,我希望通过学习不同的方法来改善它.

也许使用"地图"可能是一个好的开始?但是,我不确定如何传递这些特定的列表.

值并不总是连续的.

haskell

3
推荐指数
2
解决办法
124
查看次数

dot和plus运算符是什么意思?

我试过谷歌搜索它,但我找不到一个简单的解释.谁能解释一下这个功能是如何工作的

import Data.Char

encode :: Int -> String -> String
encode offset msg = map (chr . (+ offset) . ord) msg
Run Code Online (Sandbox Code Playgroud)

我知道它正在映射(chr . (+ offset) . ord)函数msg,但内部发生了什么(chr . (+ offset) . ord).

haskell

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

标签 统计

haskell ×2