标签:组合数 eva start parent syntax null 获取 http 命令行
bindings
syntax
type-check
evaluated
怎么去评价,是依赖于dynamic environment(动态环境)
static enviorment
其中存放了类型
dynamic environment
其中存放了Value
fun pow (x:int,y:int) =
if y = 0
then 1
else x*pow(x,y-1)
syntax 语法
fun x0 (x1:t1,...,xn:tn) = e
e 是一个expression
type-checking
type-checking主要是字得类型的检验,其检验的主要对象时e
即后面的那个表达式
type-checking是从static environment中进行比对,看是否合法
另外,一个方法的类型是"argument type"->"result type"
Evaluation
A function is a value,函数也是一个值,它被存放在environment中
e0 (e1,...,en),其中的小括号是可选的optional
fun div_mod (x:int,y : int ) =
(x div y,x mod y)
fun sort_pair (pr : int*int) =
if (#1 pr) < (#2 pr)
then pr
else ((#2 pr),(#1 pr))
添加元素 ::
判断空null
取出头元素 hd
获取剩下元素 tl
fun sum_list (xs : int list) =
if null xs
then 0
else hd(xs) + sum_list(tl xs)
fun countdown (x : int) =
if x=0
then []
else x :: countdown(x-1)
fun sum_pair_list (xs : (int * int) list) =
if null xs
then 0
else #1 (hd xs) + #2 (hd xs) + sum_pair_list(tl xs)
fun firsts (xs : (int * int) list) =
if null xs
then []
else (#1 (hd xs))::(firsts(tl xs))
标签:组合数 eva start parent syntax null 获取 http 命令行
原文地址:https://www.cnblogs.com/lvgj/p/13082901.html