对标题的措辞不太确定,但我要做的是扩展定义为类型Environment = String => Int
的环境
我从Scala tutorial for java programmers.(案例类和模式匹配)
所以我有一个可以在这个环境中查找的功能。
type Environment = String => Int
val env: Environment = { case "x" => 5 }
def lookupEnv(env: Environment, x:String): Int =
{
env(x)
}
def extendEnv(env: Environment, x:String, v:Int)
{
????
}
任何帮助将不胜感激。 感谢
答案 0 :(得分:1)
你可以这样做:
def extendEnv(env: Environment, x:String, v:Int): Environment =
(y: String) => if (y == x) v else env(y)
请参阅本教程“匿名函数”下的此语法说明。注意
如果已有x
,则会env
中的env
值。当然,你仍然可以在{{1}}本身访问它,它没有改变。
这不是环境的特别良好表示。例如。如果添加足够的变量,就会出现堆栈溢出。