Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在字符串haskell中实现占位符_Haskell - Fatal编程技术网

如何在字符串haskell中实现占位符

如何在字符串haskell中实现占位符,haskell,Haskell,如何创建一个函数来打印在缺少的空格中包含占位符/变量的句子,然后接受用户输入并通过将值插入占位符来打印完整的句子 我正在尝试打印多个缺少单词的句子语句,然后用户可以选择4个不同的单词来完成句子。目标是在缺少的空格中添加变量,这些空格充当占位符,占位符将接收用户输入,并将值存储到缺少单词的变量中,然后打印完整的句子。我在“我的想法”一节中进一步解释了这一点 这句话不是。 选项: 1.完成了吗 2.完成了吗 3.等 4.等 我在想什么 我试图通过为那些没有文本的空间使用占位符来实现一些目标,在用户选

如何创建一个函数来打印在缺少的空格中包含占位符/变量的句子,然后接受用户输入并通过将值插入占位符来打印完整的句子

我正在尝试打印多个缺少单词的句子语句,然后用户可以选择4个不同的单词来完成句子。目标是在缺少的空格中添加变量,这些空格充当占位符,占位符将接收用户输入,并将值存储到缺少单词的变量中,然后打印完整的句子。我在“我的想法”一节中进一步解释了这一点

这句话不是。 选项: 1.完成了吗 2.完成了吗 3.等 4.等

我在想什么 我试图通过为那些没有文本的空间使用占位符来实现一些目标,在用户选择后,我可以在占位符中赋值

打印句子的函数 这句话是$a而不是$b。 其中$a和$b以及我可以稍后调用的变量/占位符 存储用户选择的单词

从第一个函数中提取句子,并从另一个函数中打印选项,然后将值放入占位符中以使句子完整。 我所做的 我的实现是以一种方式完成的,即使用用户可以选择的每个可能选项重写整个句子,然后打印与用户选择的选项匹配的句子。这并没有给我我想要的功能性方法,因为它更多的是一种硬编码方法,当使用多个句子时会变得单调乏味,每个句子都有4个选项

我的代码

   --First Version
import Data.List
import System.IO

main :: IO()

sentences = do
    putStrLn "The Cat is ______ from ______ the city \n"
    putStrLn "Here are your options:"
    putStrLn "A. big, nearby"
    putStrLn "B. Nearby, in"
    putStrLn "C: You, By"
    putStrLn "D: By, Yourself"
    option <- getChar
    if (option == 'A' || option == 'a')
        then putStrLn "The Cat is big from nearby the city"
    else if (option == 'B' || option == 'b')
        then putStrLn "The Cat is nearby from in the city"
    else putStrLn "Error"

main = sentences   
我喜欢使用字符串插值,因为它是异常安全的。然后,您可以使用Maybe的折叠Maybe替换您的if:

{-语言拟语言-} 模块主要在哪里 导入控制.Monad表单_ 导入数据.chartoupper 导入数据。列表查找 导入数据,也许吧 导入Data.String.Interpolate i 导入系统.IO 句子::字符串,字符串->字符串 句子word1,word2=[i |猫{word1}来自{word2}城市\n |] 类型选择=字符、字符串、字符串 选择::[选择] 选项=['A',大,近 “B”,在附近,在 “C”,你,通过 “D”,你自己 ] presentChoice::Choice->IO presentChoice选项,word1,word2= putStrLn[i{option}.{word1},{word2}.] 句子=做 putStrLn$句子______ putStrLn以下是您的选择: 表单选择当前选择
选项见printf:这正是我要找的。非常感谢。这是一个最近的问题,其中有一些使用模块文本的示例代码。Printf:我注意到Printf的所有示例都是先输入值,然后再打印,而在我的示例中,我需要先打印不完整的句子,然后,获取用户输入的结果并打印整个句子。也许您可以将putStrLn$printf作为第一步来运行此句子%s而不是%s;然后,作为第二步,将此句子%s而不是%s放入putStrLn$printf。完成了。你是我一直在等待的英雄。如果你觉得这是你问题的答案,你可以接受答案。这样我们就有了好名声