(SWI) Prolog から来て、Haskell にオンザフライで出力させるのは非常に難しいと思います。
最も単純な例として、Haskell に反復ごとに何かを出力させたいと思います。
fac 0 = 1
fac n = fac ( n-1 ) * n
または、停止しないプログラムから出力を取得したい...
-- A possible halt statement...
-- find_primes l 100 = l
find_primes l n = if ( is_prime l n ) then find_primes nn s else find_primes l s
where s = n + 1
nn = n:l
is_prime :: Integral a => [a] -> a -> Bool
is_prime [] n = True --print the prime number on the fly
is_prime (h:t) n = if ( r /= 0 ) then is_prime t n else False
where r = n mod h
プレリュード> find_primes [ ] 2