我现在正在学习OCaml,我想出了这段代码.
let rec tree_to_list acc = function
| Leaf x -> x::acc
| Node (t1,t2) -> tree_to_list (tree_to_list acc t2) t1
Run Code Online (Sandbox Code Playgroud)
据我所知,这个功能与此功能相同
let rec tree_to_list2 acc t = match t with
| Leaf x -> x::acc
| Node (t1, t2) -> tree_to_list t1 (tree_to_list2 acc t2)
Run Code Online (Sandbox Code Playgroud)
但是,我不理解第一个函数背后的语法.我发现关键字功能令人困惑.它应该只采用一个参数,例如:
function x -> x + 2
Run Code Online (Sandbox Code Playgroud)
有人可以帮我理解第一个函数的语法,以及两个函数的评估方式是否存在差异.提前致谢.
所以,我是Python的GUI新手,我一直在努力理解envents过程,这是我的代码,以及每当我按下'a'键时它应该打印"按下按键"的意图.但它赢了为我工作.
#!/usr/bin/env python3
# -*-coding:UTF-8 -*
from tkinter import *
root = Tk()
def callback(event):
print("key pressed")
canvas = Canvas(root, width=100, height=100, bg='blue')
canvas.bind("a", callback)
canvas.pack()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)