Purescript 教程:未知值 logShow
Purescript Tutorial: unknown value logShow
我已经学习了大约一个小时的 PureScript,但在阅读 PureScript 在其网站上推荐的 PureScript by Example Tutorial 时遇到了障碍。 (特别是我在第 2.10 节)。我已经设法安装了所有东西,并且我正在尝试使用他们在教程中描述的 logShow
方法。当我 运行 此代码时出现 Unknown value logShow
错误:
module Main where
import Prelude
import Control.Monad.Eff (Eff)
import Control.Monad.Eff.Console (CONSOLE, log)
import Math (sqrt)
main :: forall e. Eff (console :: CONSOLE | e) Unit
main = logShow (diagonal 3.0 4.0)
diagonal w h = sqrt(w * w + h * h)
我假设 logShow
是一种旨在记录整数的方法,因为实际的 log
方法只接受字符串。这个方法在哪里定义的?我没有导入什么东西吗?我的安装不正确吗?还是教程跳过了什么?
提前致谢!
你快到了。
注意这一行:
import Control.Monad.Eff.Console (CONSOLE, log)
Control.Monad.Eff.Console
同时提供 log
和 logShow
。要解决您的特定问题,您只需将这些括号之间的 log
替换为 logShow
((
、CONSOLE
之后的名字是 Effect 的名称)。
以防万一 -- 通过类型可以看出两者的区别:
log :: forall eff. String -> Eff (console :: CONSOLE | eff) Unit
logShow :: forall a eff. Show a => a -> Eff (console :: CONSOLE | eff) Unit
暂时忽略影响...
log :: String -> Unit
logShow :: forall a. Show a => a -> Unit
log
仅打印字符串,而 logShow
打印任何具有 Show
实例的内容。
实际上,是的;这意味着 logShow
就是 (log <<< show)
。如果我们去查看来源... We can find it's indeed the case.
我已经学习了大约一个小时的 PureScript,但在阅读 PureScript 在其网站上推荐的 PureScript by Example Tutorial 时遇到了障碍。 (特别是我在第 2.10 节)。我已经设法安装了所有东西,并且我正在尝试使用他们在教程中描述的 logShow
方法。当我 运行 此代码时出现 Unknown value logShow
错误:
module Main where
import Prelude
import Control.Monad.Eff (Eff)
import Control.Monad.Eff.Console (CONSOLE, log)
import Math (sqrt)
main :: forall e. Eff (console :: CONSOLE | e) Unit
main = logShow (diagonal 3.0 4.0)
diagonal w h = sqrt(w * w + h * h)
我假设 logShow
是一种旨在记录整数的方法,因为实际的 log
方法只接受字符串。这个方法在哪里定义的?我没有导入什么东西吗?我的安装不正确吗?还是教程跳过了什么?
提前致谢!
你快到了。
注意这一行:
import Control.Monad.Eff.Console (CONSOLE, log)
Control.Monad.Eff.Console
同时提供 log
和 logShow
。要解决您的特定问题,您只需将这些括号之间的 log
替换为 logShow
((
、CONSOLE
之后的名字是 Effect 的名称)。
以防万一 -- 通过类型可以看出两者的区别:
log :: forall eff. String -> Eff (console :: CONSOLE | eff) Unit
logShow :: forall a eff. Show a => a -> Eff (console :: CONSOLE | eff) Unit
暂时忽略影响...
log :: String -> Unit
logShow :: forall a. Show a => a -> Unit
log
仅打印字符串,而 logShow
打印任何具有 Show
实例的内容。
实际上,是的;这意味着 logShow
就是 (log <<< show)
。如果我们去查看来源... We can find it's indeed the case.