[darcs-users] darcs patch: Refactor add_to_list.

Petr Rockai me at mornfall.net
Wed Jan 21 06:14:10 UTC 2009


Eric Kow <kowey at darcs.net> writes:
> Refactor add_to_list.
> ---------------------
>> +-- | Add element @x@ to list @xs@ if it isn't there yet.
>>  add_to_list :: Eq a => a -> [a] -> [a]
>> hunk ./src/Darcs/Repository/Prefs.lhs 382
>> -add_to_list s [] = [s]
>> -add_to_list s (s':ss) = if s == s' then (s:ss) else s': add_to_list s ss
>> +add_to_list x xs = if x `elem` xs then xs else x : xs
>
> Does it matter that x is now added to the front of the list instead of
> to the back?  (I guess we could do xs ++ [x] if it does indeed matter)
The net effect of the ordering change is that when you pull from a completely
new repository, it will be added as a first item to _darcs/prefs/repos instead
of last. The function doesn't seem to be used for _darcs/prefs/sources, where
ordering *does* matter (*but* current darcs gets it wrong anyway, so...).

Yours,
   Petr.

-- 
Peter Rockai | me()mornfall!net | prockai()redhat!com
 http://blog.mornfall.net | http://web.mornfall.net

"In My Egotistical Opinion, most people's C programs should be
 indented six feet downward and covered with dirt."
     -- Blair P. Houghton on the subject of C program indentation


More information about the darcs-users mailing list