【发布时间】:2018-11-19 23:48:55
【问题描述】:
我遇到的问题可能比问题中所述的更为笼统。我正在尝试让以下程序运行:
module Main
main: IO ()
process: Int -> Int
process req = req+1
server: Stream Int -> Stream Int
client: Int -> Stream Int -> Stream Int
server (req :: reqs) = process req :: server reqs
client initreq (resp :: resps) = initreq :: client resp resps
mutual
reqsOut: Stream Int
respsOut: Stream Int
-- This fixes the segfault:
-- reqsOut = cycle [1, 2, 3, 4]
reqsOut = client 0 respsOut
respsOut = server reqsOut
main = do
printLn(take 5 reqsOut)
如果我将reqsOut 的定义替换为注释版本,它将运行,但会按原样生成分段错误。我的猜测是我错误地使用了mutual,但我不确定如何使用。
【问题讨论】:
标签: idris