Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
33
Task/Permutations/ALGOL-68/permutations-1.alg
Normal file
33
Task/Permutations/ALGOL-68/permutations-1.alg
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
# -*- coding: utf-8 -*- #
|
||||
|
||||
COMMENT REQUIRED BY "prelude_permutations.a68"
|
||||
MODE PERMDATA = ~;
|
||||
PROVIDES:
|
||||
# PERMDATA*=~* #
|
||||
# perm*=~ list* #
|
||||
END COMMENT
|
||||
|
||||
MODE PERMDATALIST = REF[]PERMDATA;
|
||||
MODE PERMDATALISTYIELD = PROC(PERMDATALIST)VOID;
|
||||
|
||||
# Generate permutations of the input data list of data list #
|
||||
PROC perm gen permutations = (PERMDATALIST data list, PERMDATALISTYIELD yield)VOID: (
|
||||
# Warning: this routine does not correctly handle duplicate elements #
|
||||
IF LWB data list = UPB data list THEN
|
||||
yield(data list)
|
||||
ELSE
|
||||
FOR elem FROM LWB data list TO UPB data list DO
|
||||
PERMDATA first = data list[elem];
|
||||
data list[LWB data list+1:elem] := data list[:elem-1];
|
||||
data list[LWB data list] := first;
|
||||
# FOR PERMDATALIST next data list IN # perm gen permutations(data list[LWB data list+1:] # ) DO #,
|
||||
## (PERMDATALIST next)VOID:(
|
||||
yield(data list)
|
||||
# OD #));
|
||||
data list[:elem-1] := data list[LWB data list+1:elem];
|
||||
data list[elem] := first
|
||||
OD
|
||||
FI
|
||||
);
|
||||
|
||||
SKIP
|
||||
24
Task/Permutations/ALGOL-68/permutations-2.alg
Normal file
24
Task/Permutations/ALGOL-68/permutations-2.alg
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
#!/usr/bin/a68g --script #
|
||||
# -*- coding: utf-8 -*- #
|
||||
|
||||
CO REQUIRED BY "prelude_permutations.a68" CO
|
||||
MODE PERMDATA = INT;
|
||||
#PROVIDES:#
|
||||
# PERM*=INT* #
|
||||
# perm *=int list *#
|
||||
PR READ "prelude_permutations.a68" PR;
|
||||
|
||||
main:(
|
||||
FLEX[0]PERMDATA test case := (1, 22, 333, 44444);
|
||||
|
||||
INT upb data list = UPB test case;
|
||||
FORMAT
|
||||
data fmt := $g(0)$,
|
||||
data list fmt := $"("n(upb data list-1)(f(data fmt)", ")f(data fmt)")"$;
|
||||
|
||||
# FOR DATALIST permutation IN # perm gen permutations(test case#) DO (#,
|
||||
## (PERMDATALIST permutation)VOID:(
|
||||
printf((data list fmt, permutation, $l$))
|
||||
# OD #))
|
||||
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue