【发布时间】:2013-12-12 01:11:10
【问题描述】:
我正在完成这项任务,我需要一些帮助。这是最后一部分,但我真的很挣扎,不知道如何处理。问题来了:
添加一个函数 render ,它接受一个图像并返回一个字符串, 如果打印,将给出图像的图解表示为 如下图所示(确保包括周围的一点边界 图像的所有方面)。例如, render t 应该返回
".|...\n.xxx.\n-+x--\n.|...\n"(其中图像中的点表示为'x',原点表示 '+',横轴和纵轴分别用'-'和'|'表示 分别):
.|... .xxx. -+x-- .|...(我们通过 render t 函数生成的字符串可以通过 putStr 打印 (render t) 以达到上述结果)。
image 和 t 就是这样:
type Point = (Int,Int) type Image = [Point] t :: Image t=[(0,1),(1,0),(1,1),(2,1)]
首先,我需要另一个函数,因为它不能全部在渲染中完成。我知道查看 y 和 x 的最大/最小值来获得边界,并且我有一个函数。我还有一个函数,它会在每 n 个字符后插入换行符。
【问题讨论】:
-
Haskel 可能会让您有所了解,尤其是在您刚开始的时候。只是为了澄清您需要一个将
t=[(0,1),(1,0),(1,1),(2,1)]转换为".|...\n.xxx.\n-+x--\n.|...\n"的函数 -
对于图像的大小是否有任何已定义的限制,或者我们的函数是否需要自行确定?
-
我的意思更像是点的位置。如果其中一个点是
(1,1000),我们的图像将会变得非常大。 -
这是我所知道的 Haskell 的最佳资源,我目前正在工作,但当我有机会时,我会尽力为您提供适当的答案。 learnyouahaskell.com
-
编辑掉这个问题并没有帮助,即使你回想起来对这个问题不满意。请放回去。
标签: haskell functional-programming