ErJ*_*Jab 7 erlang list-comprehension
我需要在Erlang中生成一组坐标.给定一个坐标,比如说(x,y)我需要生成(x-1,y-1),(x-1,y),(x-1,y + 1),(x,y-1), (x,y + 1),(x + 1,y-1),(x + 1,y),(x + 1,y + 1).基本上所有周围坐标除了中间坐标(x,y).要生成所有九个坐标,我目前这样做:
[{X,Y} || X<-lists:seq(X-1,X+1), Y<-lists:seq(Y-1,Y+1)]
Run Code Online (Sandbox Code Playgroud)
但这会生成所有值,包括(X,Y).如何使用列表推导中的过滤器从列表中排除(X,Y)?
Zed*_*Zed 12
[{X,Y} || X <- lists:seq(X0-1,X0+1),
Y <- lists:seq(Y0-1,Y0+1), {X,Y} =/= {X0,Y0}].
Run Code Online (Sandbox Code Playgroud)