putStr
假设您使用和的组合提示用户输入getLine
:
main = do
putStrLn "A line with line termination" -- printed correctly
putStr "A line without line termination, e.g. to prompt for input: " -- NOT printed
line <- getLine
putStrLn ("You entered: " ++ line)
与 Haskell 相比,Frege 不打印第二行(使用putStr
而不是putStrLn
)。这种缺少冲洗的行为是有意的吗?
如果 Frege 偏离了 Haskell 的行为,我会假设它是模仿 Java 的行为。一个概念上相似的例子:
public static void main(String[] args) {
System.out.println("A line with line termination");
System.out.print("A line without line termination, e.g. to prompt for input: ");
String line = new java.util.Scanner(System.in).nextLine();
System.out.println("You entered: " + line);
}
然而,它的行为类似于 Haskell 变体,即System.out.print
立即刷新。
提前感谢您的任何反馈!
PS:(错误?)行为可以使用最新的 Eclipse-Plugin 以及 IntelliJ/Gradle 重现。