在下面的程序中,我试图理解match当mut, &do come in 时语句的复杂性。除此之外,就任何功能而言没有其他范围。
为了弄清楚变量的类型,我使用变量来调用函数checkout(n:i32)。编译器现在会抱怨 checkout Expects i32,但程序正在传递一些其他类型。我是一个新手,这是我认为我们可以找出我们没有明确提及的变量类型的一种方法。
fn checkout (k5:i32) {}
fn main() {
let k5 = "learning rust".to_string();
let k1 = Some(k5);
match &mut k1 {
Some(mut n) => {
checkout(n);
println!("the idea is {} {} ", n, n);
}
None => {}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我编译程序,会出现以下错误消息
fn checkout (k5:i32) {}
fn main() {
let k5 = "learning rust".to_string();
let k1 = Some(k5);
match &mut k1 {
Some(mut n) => …Run Code Online (Sandbox Code Playgroud) 我是函数式编程的新手。
我面临的挑战是关于二叉搜索树在 Haskell 中如何工作的思维导图。
到目前为止,其他语言的表现都很好。但是我如何在 Haskell 中模仿这样的事情,即
注意:这是不是根本不可能,因为数据结构是不可变的,所以我们根本不能使用根来插入东西。在这种情况下,Haskell 中如何处理上述情况?
variables haskell functional-programming immutability binary-search-tree
list1 = [2,3,4]
map22 = MapSet.new()
map22 = MapSet.put(map22,25)
for i <- list1 do
map22 = MapSet.put(map22,i)
end
IO.puts("The updated map is #{inspect(map22)}")
Run Code Online (Sandbox Code Playgroud)
当我运行上面的程序时,我发现 for 循环中的更新根本不起作用。为什么会这样呢?