On Mon, Jul 7, 2014 at 10:13 PM, Loïc Maury <[email protected]> wrote:
> > > > On Mon, Jul 7, 2014 at 9:58 PM, Luke Immes <[email protected]> wrote: > >> OK, now I will use 'rem' vs. 'mod' >> Using trial division for determining range of primes, code below works, >> except for the ending message. >> Other 'clean' programs regarding lists have worked perfectly. >> Not sure what to make of the message. >> Any suggestions? Thanks. >> /* >> clean 497>./primes >> [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97Run >> time error, rule 'prmFilter' in module 'primes' does not match >> Execution: 0.00 Garbage collection: 0.00 Total: 0.00 >> clean 497> >> */ >> module primes >> import StdEnv, StdInt, StdList, StdClass >> >> prmFilter :: Int [Int] -> [Int] >> prmFilter prime [n:rst] >> | n rem prime == 0 = prmFilter prime rst /* use rem instead of mod */ >> | otherwise = [n:prmFilter prime rst] >> > I think you have forger a pattern matching test : maybe can help -> prmFilter prime [] = [] best Loic >> primes :: [Int] -> [Int] >> primes [prime:rst] = [prime:primes (prmFilter prime rst)] >> >> Start :: [Int] >> Start = primes [2..100] >> > > It's just for the test ? > because you can use rem instead of mod, in your first first code ? > > Best > > Loic > > >> >> >> On Mon, Jul 7, 2014 at 3:04 PM, Loïc Maury <[email protected]> wrote: >> >>> Hello Luke and Community, >>> >>> same error, I'am on Windows 7 with clean ide. >>> >>> It seem, that mod is declared on StdOverloaded : >>> >>> // Additional functions for integer arithmetic: >>> instance mod Int // arg1 modulo arg2 >>> instance rem Int // remainder after integer division >>> instance gcd Int // Greatest common divider >>> >>> There are another file StdInt, we have rem and gcd : >>> // Additional functions for integer arithmetic: >>> >>> instance rem Int >>> where >>> (rem) a b >>> = code inline { >>> remI >>> } >>> >>> instance gcd Int >>> where >>> gcd x y = gcdnat (abs x) (abs y) >>> where >>> gcdnat x 0 = x >>> gcdnat x y = gcdnat y (x rem y) >>> >>> but it seem, unfortunately no mod ? >>> >>> Maybe a professional of clean can answer better than I do. >>> >>> Best >>> >>> Loic >>> >>> >>> On Mon, Jul 7, 2014 at 5:53 PM, Luke Immes <[email protected]> wrote: >>> >>>> Documentation makes reference to required modules, but 'mod' is still >>>> not working. >>>> >>>> Any suggestions? Thanks. >>>> >>>> >>>> clean 496>cat mymod.icl >>>> >>>> module mymod >>>> >>>> import StdEnv, StdInt, StdClass >>>> >>>> Start :: [Int] >>>> >>>> Start = [x*x \\ x <- [1..10] | x mod 2 == 0] >>>> >>>> --------- >>>> >>>> clean 495>make mymod >>>> >>>> clm -h 20m mymod -o mymod >>>> >>>> Compiling mymod >>>> >>>> Overloading error [mymod.icl,4,c;4;14]: "mod" no instance available of >>>> type Int >>>> >>>> make: *** [mymod] Error 1 >>>> >>>> _______________________________________________ >>>> clean-list mailing list >>>> [email protected] >>>> http://mailman.science.ru.nl/mailman/listinfo/clean-list >>>> >>>> >>> >> >
_______________________________________________ clean-list mailing list [email protected] http://mailman.science.ru.nl/mailman/listinfo/clean-list
