Beginning Elm - Let Expression页面建立在上一页的基础上,但它没有涵盖如何更新主函数,用正向函数表示法编写,它是:
main =
time 2 3
|> speed 7.67
|> escapeEarth 11
|> Html.text
包含新的fuelStatus参数。
编译器抱怨类型不匹配,这是正确的,因为escapeEarth现在有第三个参数,这是一个字符串。
如该网站所述"转发函数应用程序运算符从前一个表达式获取结果,并将其作为最后一个参数传递给下一个函数应用程序。"
换句话说,我该怎么写:
Html.text (escapeEarth 11 (speed 7.67 (time 2 3)) "low")
使用正向表示法?
另外,为什么不打印#34;登陆无人机"以及"留在轨道"?它只打印"留在轨道":
module Playground exposing (..)
import Html
escapeEarth velocity speed fuelStatus =
let
escapeVelocityInKmPerSec =
11.186
orbitalSpeedInKmPerSec =
7.67
whereToLand fuelStatus =
if fuelStatus == "low" then
"Land on droneship"
else
"Land on launchpad"
in
if velocity > escapeVelocityInKmPerSec then
"Godspeed"
else if speed == orbitalSpeedInKmPerSec then
"Stay in orbit"
else
"Come back"
speed distance time =
distance / time
time startTime endTime =
endTime - startTime
main =
Html.text (escapeEarth 11 (speed 7.67 (time 2 3)) "low")
答案 0 :(得分:4)
我认为你需要的是
main =
time 2 3
|> speed 7.67
|> \spd -> escapeEarth 11 spd "low"
|> Html.text
换句话说,您定义了一个小的匿名函数来正确插入值。您可能想要查看是否应使用不同的顺序定义escapeEarth函数。
如果你喜欢“免费点”,那么另一种选择就是
main =
time 2 3
|> speed 7.67
|> flip (escapeEarth 11) "low"
|> Html.text
有些人认为这不太清楚,但
关于你的第二个问题,你已经在let语句中定义了函数但从未实际使用它