f#相当于Haskell的"互动"

PCB*_*PCB 8 f# haskell

我只是阅读了一些关于Haskell的内容,并看到了它的方法interact,该方法实现了从stdin读取输入的常见模式,将函数应用于字符串,并将结果写回stdout.所以,例如:

interact (map toUpper)
Run Code Online (Sandbox Code Playgroud)

打印出stdin转换为大写的所有内容.

在F#/ .Net中是否已经存在相当于此的内容?

Joh*_*mer 6

此功能本身不存在,但实现它很容易:

let inline interact f =
    printfn "%s" (f (System.Console.Readline()))
Run Code Online (Sandbox Code Playgroud)

  • 这个[F#snippet](http://fssnip.net/9P)使用Seq.initInfinite从控制台演示了懒惰的读取,可能接近你想要的.它在10行F#中创建了一个最小的销售点应用程序. (4认同)