我将如何延迟序言中的执行?我可以threadDelay ms
在 Haskell 中将其延迟ms
几毫秒。有没有办法在序言中做到这一点?我的意思是我可能只做一堆空查询,比如
delay(0).
delay(X) :- delay(Y), Y is X - 1.
但这似乎是一个愚蠢和错误的想法。
编辑:
显然有sleep/1
。但是,当我做类似的事情时
delayText([H|T]) :- put_char(H), sleep(0.1), delayText(T).
delayText([]).
, sleep 将首先执行(所以它会在查询时休眠 0.5 秒delayText("Hello").
)然后它会立即显示所有文本?我该如何防止这种情况?