我是一个初学程序员,并且有我的头几个编程课程。我们从函数式编程开始,在本例中使用Haskell。我已经成功地完成了一些任务,但似乎卡在了一点上,希望能得到一些帮助。
为了不让您对整个代码感到厌烦,我的程序现在正在从一个文本文件中提取一个命令列表。我需要把这个列表转换成一组坐标。我的意思是这样的东西:
function :: [String] -> (Int, Int, Char)其中该函数将接收例如列表"0 0 N“并输出坐标和方向(0,0,N)。
我试着这样做:
function [x y o] = (show x, show y, read o)如果它只是整数,这将会起作用。我似乎不能让Char部分工作。如果这是一个如此幼稚的问题,我很抱歉,但请容忍我,我真的对这一切都是新手。
谢谢并致以最良好的问候!
发布于 2014-11-30 04:29:03
对于您的特定测试用例,这应该是可行的:
function [(x:' ':y:' ':o:_)] = (read [x], read [y], o)如果你的字符串包含空格,如果你想这样做,你也需要匹配它们。
但这可能不是你真正想要的。对于像["12 23 S"]或["3 5 W", "2 8 E"]这样的输入,它会中断。
如果您的输入实际上是一个字符串列表,就像您的签名所说的那样,您可能应该编写两个函数:一个处理单个字符串,另一个将另一个函数应用于列表中的所有字符串。查看函数map和words,并考虑如何使用它们来解决问题。
https://stackoverflow.com/questions/27206480
复制相似问题