Files
mercury/compiler
Fergus Henderson 60b9fa83b6 Implement higher-order functions.
Estimated hours taken: 12

Implement higher-order functions.

Add higher-order function terms
(function lambda expressions, e.g. `Func = (func(X) = Y :- Y is 2 * X)'
and higher-order function calls (apply/N, e.g. `Z = apply(Func, 42)').
Add higher-order function insts and modes.

hlds_goal.m:
	Add a new field pred_or_func to lambda_goal.

prog_data.m:
	Add a new field pred_or_func to pred_inst_info.

prog_io.m:
	Add support for parsing higher-order function terms and
	higher-order function insts and modes.

make_hlds.m:
	Add support for parsing higher-order function terms.

typecheck.m:
	Add support for type-checking higher-order function calls
	and higher-order function terms.

modes.m, mode_errors.m:
	Add support for mode-checking higher-order function calls
	and higher-order function terms.

higher_order.m:
	Handle higher-order function types and insts.

hlds_pred.m:
	Add new predicate pred_args_to_func_args, for extracting the
	function arguments and function return from the arguments
	of a predicate that is really a function.

*.m:
	Minor changes to handle new pred_or_func field in lambda_goals
	and pred_inst_infos.
1996-05-14 10:07:46 +00:00
..
1996-05-14 10:07:46 +00:00
1996-05-14 10:07:46 +00:00
1996-05-14 10:07:46 +00:00
1996-05-14 10:07:46 +00:00
1996-05-14 10:07:46 +00:00
1996-05-14 10:07:46 +00:00
1996-05-14 10:07:46 +00:00
1996-05-14 10:07:46 +00:00
1996-05-13 07:52:35 +00:00
1996-05-13 07:52:35 +00:00
1996-05-14 10:07:46 +00:00
1996-05-14 10:07:46 +00:00
1996-05-14 10:07:46 +00:00
1996-05-14 10:07:46 +00:00
1996-05-13 07:52:35 +00:00
1996-05-13 07:52:35 +00:00