함수 목록과 인수를 취하는 함수를 작성하는 데 문제가 있습니다. 전달 된 인수로 각 함수를 호출하고 호출 결과 목록을 반환합니다. 예 : build [f, g, h] 2이 함수를 호출했지만 호출 대신 결과가 반환됩니다. [f(2), g(2), h(2)] 그런데 SML/NJ를 사용합니다. 가 우선이 패턴의 많은 변종 시도 : fun build function
이 질문은 예제를 위해 펑터를 사용하는 F 번호에 L. C. 폴슨 "ML for the Working Programmer"(WorldCat)의 내 번역에서 밖으로 시작했다. 펑크 터를 사용하는 Chris Okasaki의 "Purely Functional Data Structures"(WorldCat)을 번역하려는 최종 결과. Andrea Asperti 및
fun isfib(a) =
findfib(a,1,1)
and
findfib(b,x,y) =
val z = x + y
if b <= 1 then true
else if z > b then false
else if z = b then true
else fib(b,y,z)
입력을 프로그램에 넣고이 입
OCaml의 옵션 유형은 아무 것도 반환하지 않는 함수가있는 경우에 유용합니다. 그러나 이것을 여러 곳에서 사용할 때, 케이스와 None 케이스를 항상 match ... with으로 처리하는 것이 번거로울 수 있습니다. let env2 = List.map (fun ((it,ie),v,t) ->
match t with
| Some t ->
SML/nj의 이진 검색 트리에 대한 노드 삭제 기능을 구현하려고합니다. (get_key에 대한) Warning: match nonexhaustive
Node (k,l,r) => ...
사람이 왜 알고 있나요 : 그러나 나는이 내가 점점 오전 오류입니다 datatype 'a tree = Empty | Node of 'a * 'a tree *
type Name = string;
datatype Expr = Const of int
| Var of Name
| Neg of Expr
| Plus of Expr * Expr
| Mult of Expr * Expr
| App of Fun * Expr
and Fun = Def of Name * Expr
caml-light에서 단항 연산자와 이진 연산자로 -의 차이를 가지고 놀고 있습니다. let a b =
print_int b;
print_newline();
;;
let c d e =
print_int d;
print_newline();
print_int e;
print_newline();
;;
a (3 - 4