home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lifeos2.zip / LIFE-1.02 / TESTS / LF / HAMMING.LF < prev    next >
Text File  |  1996-06-04  |  515b  |  23 lines

  1. % Multiply list by U, up to maximum element of N.
  2. mult_list(U,N,[H|T]) ->
  3.     cond(R:(U*H)<N,
  4.              [R|mult_list(U,N,T)],
  5.              []).
  6.  
  7. % Merge two lists.
  8. merge(L,[]) -> L.
  9. merge([],L) -> L.
  10. merge(L1:[H1|T1],L2:[H2|T2]) ->
  11.     cond(H1=:=H2,
  12.              [H1|merge(T1,T2)],
  13.              cond(H1>H2,
  14.                   [H2|merge(L1,T2)],
  15.               [H1|merge(T1,L2)])).
  16.  
  17.  
  18. % Generate hamming sequence up to N.
  19. hamming(N) -> R:[1|merge(mult_list(2,N,R),
  20.              merge(mult_list(3,N,R),
  21.                    mult_list(5,N,R)))].
  22.  
  23.