Skip to content

Commit

Permalink
Implement errors for RANK and /
Browse files Browse the repository at this point in the history
  • Loading branch information
Jan Wielemaker authored and Jan Wielemaker committed Oct 31, 2012
1 parent 0dabe6e commit fa37730
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions ods_table.pl
Expand Up @@ -866,7 +866,10 @@
ods_eval(A/B, Value, M) :- !,
ods_eval_typed(A, number, VA, M),
ods_eval_typed(B, number, VB, M),
Value is VA/VB.
( VB =:= 0
-> Value = #('DIV/0!')
; Value is VA/VB
).
ods_eval(-A, Value, M) :- !,
ods_eval_typed(A, number, VA, M),
Value is -VA.
Expand Down Expand Up @@ -1018,12 +1021,17 @@
eval('RANK'(V, List), Rank) :-
msort(List, Sorted),
reverse(Sorted, Descending),
nth1(Rank, Descending, V).
( nth1(Rank, Descending, V)
-> true
; Rank = #('N/A')
).
eval('RANK'(V, List, Order), Rank) :-
( Order =:= 0
-> eval('RANK'(V, List), Rank)
; msort(List, Ascending),
nth1(Rank, Ascending, V)
-> true
; Rank = #('N/A')
).
eval('ISERROR'(T), True) :-
( T = #(_)
Expand Down

0 comments on commit fa37730

Please sign in to comment.