haskell - Haskell 不能传递变量
问题描述
我是 Haskell 的初学者,我在路上遇到了一个相当烦人的颠簸。在我目前的阶段,我只是试图将一个列表从我的主要功能传递到另一个并打印它,我不明白为什么它不起作用。
在我的脑海中,我觉得我应该能够:
main = do
putStrLn "-----Text Editor-----"
putStrLn "Please enter your text"
leftString <- getLine
putStrLn $ "\n\n" ++ leftString ++ "|"
moveCursorLeft = do
putStr $ leftString
但这似乎不起作用,因为“leftString”不在范围内。
解决方案
函数调用是调用者和被调用者之间的握手:调用者必须传递一些参数,而被调用者必须接受它们。正如您所写,moveCursorLeft
不接受任何参数。但别担心,这很容易解决:
moveCursorLeft leftString = do
putStr $ leftString
您现在可以在 中使用它main
,例如
main = do
leftString <- getLine
putStr "\n\n"
moveCursorLeft leftString
putStrLn "|"
推荐阅读
- php - 我的 wordpress 不断将我重定向到原始网站
- elixir - 当我的遥控器是嵌入式系统时,如何使用来自 IEx 的 :observer?
- javascript - 将 NextJS 中的 Google Analytics 与 Twin.Macro / Styled Components 设置集成:如何更改 _document.js?
- reactjs - 与 monorepo 中的每个包共享 typescript 模块
- spring - 基于 Spring Boot @RequestScope 和 Hibernate 模式的多租户
- c++ - 如何重构嵌套的for循环?
- c# - MongoDB C#映射隐藏字段
- angular - Angular,在点击事件上获取html标签嵌入数据
- flutter - FirebaseAuth 令牌问题扑朔迷离
- django-models - form_valid 更新视图