光泽Haskell中的冻结模拟

时间:2016-09-04 10:04:49

标签: function haskell simulation gloss

我正在使用光泽库来描绘模拟。是否有一个函数,它在条件为真时停止sed -r 's/,/\n/;s/,/\n/;h;s/\./& /g;G;s/.*\n(.*)\n.*\n(.*)\n.*\n/\2,\1,/' file 函数。最后绘制的图片应保留在窗口中。

提前致谢

1 个答案:

答案 0 :(得分:0)

正如@ErikR建议的那样,你所描述的内容相当于在你达到你想要的状态后不再更新模型。您可以定义一个组合在步进函数上的组合器,正是这样做:

untilModel
  :: (ViewPort -> Float -> model -> model)
  -> (model -> Bool)
  -> (ViewPort -> Float -> model -> model)
untilModel step isFrozen v f m =
  if isFrozen m then m
  else step v f m

当您拥有step功能并希望在isFrozen成为模型时停止模拟时,您只需传递simulate已更改的步骤函数step `untilModel` isFrozen