gpt4 book ai didi

functional-programming - 二郎 : Traversing N by N area

转载 作者:行者123 更新时间:2023-12-01 10:14:57 25 4
gpt4 key购买 nike

我希望遍历 NxN 区域,给定起点 X、Y 和要遍历的正方形的大小。例如。给定 X=10,Y=12,Size=2 - 我想生成 10,10 ; 10,11; 11,10 和 11,11。

我想到了这个,但它似乎会无限地继续下去:

traverse({X,Y,Xend,Yend}) ->

% print X,Y values here....

case (X == Xend-1) andalso (Y == Yend-1) of
true ->
ok;
_->
case (Y < Yend-1) of
true ->
traverse({X,Y+1,Xend,Yend});
_->
traverse({X+1,Y,Xend,Yend})
end
end.

我从另一个函数调用了上面的函数:

Size = 3,
traverse({10,20,10+Size,20+Size}).

我做错了什么?我实际上是功能范式的新手,我尝试在 C 上实现它,使用“return”代替上面的“ok”,它起作用了,但我猜,我没有足够的“功能”思考!

最佳答案

traverse(X0, Y0, S) ->
[
io:format("coords: ~p~n", [{X,Y}])
|| X <- lists:seq(X0, X0 + S - 1),
Y <- lists:seq(Y0, Y0 + S - 1)
],
ok

在外壳中:

1> traverse(10, 12, 2).
coords: {10,12}
coords: {10,13}
coords: {11,12}
coords: {11,13}
ok

关于functional-programming - 二郎 : Traversing N by N area,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1875113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com