Zna li netko napisati jednosatvnu funkciju u Haskellu? Trebam hitno!

Pozdrav svima.
Hitno bi trebao pomoć. Moram napisat do 11.30 sati danas jednu kratku funkciju u programskom jeziku Haskell a neznam to. Ako netko zna molim da mi pomogne rješit. I ako mu se da malo objasnit šta i kako.

zadatak:

Napisati funkciju u Hasekllu koja iz liste izbacuje svaki element koji je veći od svog sljedbenika. Funkciju testirati nad nizovima cijelih brojeva i nizova brojeva s pomićnim zarezom. Dozvoljeno je korištenje vlastitih pomoćnih funkcija ali se ne smiju koristiti gotove funkcije iz dodatnih biblioteka.

Zna li netko?

:slight_smile: znam ja ali necu da ti radim zadacu …
ako uzmes i procitas mozes to napisati
to ti je cca 2-3 linije u haskellu - sta kukas …

dobro ako neces… ne kukam, pitam za pomoć. Prolazim tutoriale i primjere, pokusavam napisat… neide… i šta sad, pito sam za pomoc.

Pokazi kod koji si napisao pa cemo vidjeti …

rmChar :: Char -> [Char] -> [Char]
rmChar c [] = []
rmChar c (x:xs) = if x == c then rmChar c xs else [x] ++ rmChar c xs

rmBlanks :: [Char] -> [Char]
rmBlanks xs = rmChar ’ ’ (rmChar ‘.’ (rmChar ‘:’ xs))

Ova funkcija bi trebala brizati praznine iz niza. Sad, ne kuzim taj rekurzivni poziv i setanje po nizu.
Razmisljam kak da prepravim da radi za moj zadatak.
Dali bi logika trebala biti nešto kao što bi se u C-u radilo. Npr. kroz for petlju prolazim i ispitujem. Brišem one koje trebam i smanjujem duljinu niza?

Sad me zvala sefica od cure da dođem po nju na posao jer joj je slabo. Nece me biti pol sata samo da ju odvezem kući…

ne moze tako … haskell je funkcionalni programski jezik sto znaci da je nemoguce updateovati varijablu kad je jednom postvis, a to znaci da petlje kao u C-u ne postoje …

Doso sam…
I, oces mi pomoc testni_hamo2? Rok se približava (12 h)!

eh kasno vidjeh … bio sam na sastanku … evo ti
ako ti sad treba …
posto zadnji clan nema sljedbenika, ova implementacija njega uopste ne ukljucuje …

[code]izdvoji :: [Double] -> [Double]
izdvoji lista = (izdvojiNiz lista [])

izdvojiNiz :: [Double] -> [Double] -> [Double]
izdvojiNiz (prvi:[]) rezultat = rezultat
izdvojiNiz (prvi:ostalo) rezultat =
(
if prvi > head ostalo then (izdvojiNiz ostalo (rezultat++[prvi]) )
else (izdvojiNiz ostalo rezultat)
)[/code]
pozivas sa
izdvoji [1,2,3,4,2,3,4,3,1,2,3]

koristio sam ghc implementaciju haskella
radi i sa cijelim i sa decimalnim brojevima

Puno ti hvala. Obećajem da ću proučiti Haskell da to razumijem bolje i da znam sam to riješiti. Čak i moram jer mi dolazi ispit.
Nevjerujem da će mi prihvatit zadatak al ću probat.