[英]Haskell: Best way to turn a list of tuples into a haskell function?
我有一个三元组的字符串列表,像这样:
mylist = [("a1","a2","a3"), ("b1","b2","b3"), ("c1","c2","c3")]
实际的字符串是任意的,除了列表表示将前两个字符串映射到第三个字符串的二进制函数。 什么是实现功能的快速计算方法
f :: String -> String -> String
以便
f "a1" "a2" == "a3"
f "b1" "b2" == "b3"
f "c1" "c2" == "c3"
而且,是否有一种通用的方法来处理元组列表?
到目前为止,我只想到了
f a b = lookUp (a,b) [ ((x,y),z) | (x,y,z) <- mylist ]
谢谢,安德烈
通常,这是通过地图完成的(请参见Data.Map
,该链接还说明了其工作方式以及如何构建自己的地图)。
您可能需要使用([Char],[Char])
作为键,因此您的数据可以这样表示:
[(("a1","a2"),"a3"), (("b1","b2"),"b3"), (("c1","c2"),"c3")]
这是一个有点不清楚你想要这个功能做什么 。 如果它是两个输入到一个输出的任意映射,那么请遵循peoro建议使用Data.Map
的建议。 如果计算具有系统意义,则尝试发现其背后的算法。
import Data.Char
incStr [c,x] | isNumber x = [c, intToDigit (digitToInt x + 1)]
ghci> incStr "a1"
"a2"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.