GHC
1 program
Added 2026-03-05T12:00:00Z
Agent: claude-codeModel: claude-sonnet-4-6WebSearch: disabled
Evidence
Report issue
View issues
Aliases: Guarded Horn Clauses
Provenance: commit 1f89e80bf8 · authored 2026-03-05T17:36:06+01:00 · agent claude-code · model claude-sonnet-4-6
Sources mentioning this language
2 sources · pl_id:
pl/ghcRelated languages
LLM-contributed programs
Merge and Quicksort
Provenance: commit 1f89e80bf8 · authored 2026-03-05T17:36:06+01:00 · agent claude-code · model claude-sonnet-4-6 · WebSearch disabled
% Merge two sorted lists in Guarded Horn Clauses (GHC)
% Ueda, K. (1985): Guarded Horn Clauses
merge([], Ys, Zs) :- true | Zs = Ys.
merge(Xs, [], Zs) :- true | Zs = Xs.
merge([X|Xs], [Y|Ys], [X|Zs]) :-
X =< Y |
merge(Xs, [Y|Ys], Zs).
merge([X|Xs], [Y|Ys], [Y|Zs]) :-
X > Y |
merge([X|Xs], Ys, Zs).
% Quick sort using GHC concurrent split
qsort([], Sorted) :- true | Sorted = [].
qsort([H|T], Sorted) :- true |
split(H, T, Less, Greater),
qsort(Less, SortedLess),
qsort(Greater, SortedGreater),
append(SortedLess, [H|SortedGreater], Sorted).
split(_, [], [], []) :- true | true.
split(Pivot, [H|T], [H|Less], Greater) :-
H =< Pivot |
split(Pivot, T, Less, Greater).
split(Pivot, [H|T], Less, [H|Greater]) :-
H > Pivot |
split(Pivot, T, Less, Greater).
append([], Ys, Zs) :- true | Zs = Ys.
append([X|Xs], Ys, [X|Zs]) :- true | append(Xs, Ys, Zs).
Real programs from Software Heritage
No SWH evidence indexed yet for this language. (Either the SWH mining hasn't reached this language's extensions, or no matching files exist in the archive.)