【发布时间】:2018-02-08 13:22:55
【问题描述】:
我正在尝试编写一个函数,该函数将返回一个列表,其中包含从起点开始的所有位置。例如,如果我写 "positions [L,R,L,L,U] (0,0)" 结果必须是 "[(0,0),(-1,0),(0,0),(-1,0 ),(-2,0),(-2,1)]" 。
使用以下函数,我只能得到结束位置。谁能帮帮我?
type Position = (Int,Int)
data Step = L | R | U | D
type Route = [Step]
positions :: Route -> Position-> [Position]
positions [] p = p:[]
positions (m:ms) p = positions ms (move m p)
【问题讨论】:
-
可以定义一个指定时刻的函数,然后使用
scanl。