Sha256: e1c1532a7f7acf43c657f3890b3f41dc87d3362b5f57e7d0a14ff2c06b632458

Contents?: true

Size: 383 Bytes

Versions: 68

Compression:

Stored size: 383 Bytes

Contents

% returns true if X is at most, 1 time in L.
atMost1(X, XS) :-
 findall(E, (member(E, XS), X = E), O), length(O, LO), LO =< 1.

% returns true if every letter of the engilsh alphabet is at most 1 time in S.
isogram(S) :-
  atom_codes("abcdefghijklmnopqrstuvwxyz", ABC),
  string_lower(S, LowerS),
  atom_codes(LowerS, NormalizedS),
  forall(member(L, ABC), atMost1(L, NormalizedS)).

Version data entries

68 entries across 68 versions & 1 rubygems

Version Path
trackler-2.2.1.139 tracks/prolog/exercises/isogram/isogram.example
trackler-2.2.1.138 tracks/prolog/exercises/isogram/isogram.example
trackler-2.2.1.137 tracks/prolog/exercises/isogram/isogram.example
trackler-2.2.1.136 tracks/prolog/exercises/isogram/isogram.example
trackler-2.2.1.135 tracks/prolog/exercises/isogram/isogram.example
trackler-2.2.1.134 tracks/prolog/exercises/isogram/isogram.example
trackler-2.2.1.133 tracks/prolog/exercises/isogram/isogram.example
trackler-2.2.1.132 tracks/prolog/exercises/isogram/isogram.example
trackler-2.2.1.131 tracks/prolog/exercises/isogram/isogram.example
trackler-2.2.1.130 tracks/prolog/exercises/isogram/isogram.example
trackler-2.2.1.129 tracks/prolog/exercises/isogram/isogram.example
trackler-2.2.1.128 tracks/prolog/exercises/isogram/isogram.example
trackler-2.2.1.127 tracks/prolog/exercises/isogram/isogram.example
trackler-2.2.1.126 tracks/prolog/exercises/isogram/isogram.example
trackler-2.2.1.125 tracks/prolog/exercises/isogram/isogram.example
trackler-2.2.1.124 tracks/prolog/exercises/isogram/isogram.example
trackler-2.2.1.123 tracks/prolog/exercises/isogram/isogram.example
trackler-2.2.1.122 tracks/prolog/exercises/isogram/isogram.example
trackler-2.2.1.121 tracks/prolog/exercises/isogram/isogram.example
trackler-2.2.1.120 tracks/prolog/exercises/isogram/isogram.example