home *** CD-ROM | disk | FTP | other *** search
- map_list(Input_list,Machines):-
- start_evaluators(Machines),
- map_each_element(Input_list,Output_list),
- send_request(writeln(Output_list)),
- stop_evaluators(Machines).
-
- map_each_element([],[]).
-
- map_each_element([H|T],[HR|TR]):-
- start_evaluation(H),
- map_each_element(T,TR),
- rd(evaluated(H,HR)).
-
- start_evaluation(Value):-
- rdp(evaluated(Value,_)),
- send_request(write(evaluated_)),
- send_request(writeln(Value)),
- !.
-
- start_evaluation(Value):-
- rdp(evaluate(Value)),
- send_request(write(waiting_for_evaluation_)),
- send_request(writeln(Value)),
- !.
-
- start_evaluation(Value):-
- rdp(being_evaluated(Value)),
- send_request(write(being_evaluated_)),
- send_request(writeln(Value)),
- !.
-
- start_evaluation(Value):-
- send_request(write(to_evaluate_)),
- send_request(writeln(Value)),
- out(evaluate(Value)).
-
- start_evaluators([]).
-
- start_evaluators([F|R]):-
- eval(F,fibonacci,poll_requests(fibonacci)),
- start_evaluators(R).
-
- stop_evaluators([]).
-
- stop_evaluators([_|R]):-
- out(evaluate(halt)),
- stop_evaluators(R).
-
-