【发布时间】:2016-03-25 05:10:37
【问题描述】:
如何在 Clean 中执行此操作?
伪代码:
loop:
input = read_stdin
if input == "q":
break loop
else:
print "you input: ", input
其实,我看过一些pdf。但是我有一个想象力,很难处理标准输入和标准输出。我可以有一个使用 stdio 的代码示例吗?
按照基兰的指示,我完成了我的小程序。
module std_in_out_loop
import StdEnv
loop :: *File -> *File
loop io
# io = fwrites "input your name: " io
# ( name, io ) = freadline io
# name = name % ( 0, size name - 2 )
| name == "q"
# io = fwrites "Bye!\n" io
= io
| name == ""
# io = fwrites "What's your name?\n" io
= loop io
| otherwise
# io = fwrites ( "hello " +++ name +++ "\n" ) io
= loop io
Start:: *World -> *World
Start world
# ( io, world ) = stdio world
# io = loop io
# ( ok, world ) = fclose io world
| not ok = abort "Cannot close io.\n"
| otherwise = world
【问题讨论】:
-
为什么不用google找教程自己做呢?
-
我找不到那个。你能给我一个链接吗?请。谢谢。
-
谢谢!你介意给我一些代码吗?我知道这对你来说是小菜一碟。
标签: functional-programming stdio clean-language uniqueness-typing