我试图完成一项任务。这是任务的最后一个问题,我已经进行了一段时间,但进展甚微。我需要将图像转换为ASCII图形,其中
type Point = (Int, Int)
type Image = [Point]
我必须编写一个带Image的函数并返回一个String。输出应该是“。| ... \ n.xxx。\ n- + x - \ n。| ... \ n”,使用putStr输出时看起来像
.|...
.xxx.
-+x--
.|...
原点用+表示,轴|和 - ,以及点'x'。
图形应始终在坐标周围有一个1点边框,因此当我打印图形时,我需要知道坐标的边界。我有一个功能来获得这些。
我还编写了一个函数split,它接受一个String和一个整数,并在每第n个间隔插入\ n。我想解决问题的方法是创建一个空白图表,其中包含轴的正确位置,然后将空白图表传递给新函数以插入点。
任何人都可以帮助我吗?如果它含糊不清,我可以提供您可能需要的更多详细信息。
答案 0 :(得分:1)
以下是需要考虑的一些事项:
type
将其称为FImage
,则可获得积分。把这些功能想象成你的主要对象(记住,功能是一等公民)。FImage
。请注意,您不需要任何界限。那不是很好吗?FImage
和Point
的函数,并生成一个FImage
,其x
位于正确的位置。FImage
和界限,产生最终String
。您可能希望在此处使用列表推导。foldl
还是foldr
,两者都有效(如果类型匹配)。快乐学习!
答案 1 :(得分:0)
很高兴看到人们诚实地将他们的问题标记为作业。