Ascend FD-23R Manual do Utilizador Página 77

  • Descarregar
  • Adicionar aos meus manuais
  • Imprimir
  • Página
    / 81
  • Índice
  • MARCADORES
  • Avaliado. / 5. Com base em avaliações de clientes
Vista de página 76
65
scanr F Q0 [X|Xs] = auxForScanr F X (scanr F Q0 Xs)
%where
auxForScanr F X Ys = [F X (head Ys)|Ys]
scanr1 :: (A -> A -> A) -> [A] -> [A]
scanr1 F [X] = [X]
scanr1 F [X,Y|Xs] = auxForScanr F X (scanr1 F [Y|Xs])
%% List breaking functions:
%%
%% take n Xs returns the first n elements of Xs
%% drop n Xs returns the remaining elements of Xs
%% splitAt n Xs = (take n Xs , drop n Xs )
%%
%% takeWhile P Xs returns the longest initial segment of Xs whose
%% elements satisfy p
%% dropWhile P Xs returns the remaining portion of the list
%% span P Xs = (takeWhile P Xs , dropWhile P Xs )
%%
%% takeUntil P Xs returns the list of elements upto and including the
%% first element of Xs which satisfies p
take :: int -> [A] -> [A]
take N [] = []
take N [X|Xs] = if N==0 then [] else [X|take (N-1) Xs]
drop :: int -> [A] -> [A]
drop N [] = []
drop N [X|Xs] = if N==0 then [X|Xs] else drop (N-1) Xs
splitAt :: int -> [A] -> ( [A] , [A] )
splitAt N [] = ([],[])
splitAt N [X|Xs] = if N==0
then ([], [X|Xs])
else auxForSplitAt X (splitAt (N-1) Xs)
%where
auxForSplitAt X (Xs,Ys) = ([X|Xs],Ys)
takeWhile :: (A -> bool) -> [A] -> [A]
takeWhile P [] = []
Vista de página 76
1 2 ... 72 73 74 75 76 77 78 79 80 81

Comentários a estes Manuais

Sem comentários