Pitanja oko domaćih zadaća

100 views
Skip to first unread message

Marko Bekavac

unread,
Oct 23, 2011, 4:18:28 PM10/23/11
to Haskell-FER
Već je vrijeme da netko započne s ovim :)

Mene ne muči ništa oko same zadaće nego imam tehnički problem - na
ferku mi nije dozvoljeno uploadati datoteku, odnosno uopće nemam gumba
za upload. Je li to tako samo meni?

Jan Snajder

unread,
Oct 24, 2011, 6:06:54 AM10/24/11
to Haskell-FER
Probajte sad.

LP
Jan

Marko Bekavac

unread,
Oct 24, 2011, 6:17:00 AM10/24/11
to Haskell-FER
Super, sad radi.
Hvala!

Bruno Vunderl

unread,
Oct 31, 2011, 7:48:12 AM10/31/11
to Haskell-FER
Pozdrav,
Možete li u sljedećim zadaćama nakon zadatka staviti primjer poziva
funkcije i njenog izlaza?
Mislim da to podosta pomaže prilikom shvaćanja zadatka, a i kod
kompliciranijih unosa potrebno je samo c/p.

On Oct 24, 11:17 am, Marko Bekavac <marko.beka...@gmail.com> wrote:
> Super, sad radi.
> Hvala!

Jan Snajder

unread,
Nov 1, 2011, 5:48:31 AM11/1/11
to Haskell-FER
Većinom jesmo, zar ne?

Kad god je to moguće, stavit ćemo primjer evaluacije funkcije.
I to ispravno, po mogućnosti (zeznuo sam kod medijana...).

Kasnije, kod složenijih zadataka, dat ćemo vam samo tipsku signaturu
glavne funkcije, a vi je onda trebate na smislen način razbiti na više
manjih funkcija.

LP
Jan

Joel Mislav Kunst

unread,
Nov 1, 2011, 1:28:05 PM11/1/11
to haske...@googlegroups.com
Jel moze molim lijepo objasnjenje ovog zadatka, kakav predikat kaj??:

'Poop cite funkciju na wordIndicesWith p s koja vra ca listu pozicija rije ci koje
zadovoljavaju predikat p (tj. listu pozicija svih rije ci w u stringu s za koje p w
== True).'

Siniša Biđin

unread,
Nov 1, 2011, 1:47:01 PM11/1/11
to haske...@googlegroups.com
Datuma 1. studenoga 2011. 18:28 Joel Mislav Kunst <7se...@gmail.com>
je napisao/la:

> Jel moze molim lijepo objasnjenje ovog zadatka, kakav predikat kaj??:

Predikat je u ovom slučaju samo drugo ime za funkciju koja vraća True ili False.

> Poopćite funkciju na wordIndicesWith p s koja vraća listu pozicija
> riječi w u stringu s (1 pozicija = 1 riječ) koje zadovoljavaju predikat p.

Potrebno je poopćiti funkciju wordIndices tako da više ne vraća
pozicije onih riječi koje su jednake danoj riječi, već da vraća
pozicije onih riječi koje, kada na njih primijenimo funkciju p,
rezultiraju istinitom vrijednošću.

Kao primjer, upitajmo se koje su riječi dulje od tri slova:

let test w = length w > 3
wordIndicesWith test "Haskell has cool" => [0, 2]

Ili, zapitajmo se koje su riječi palindromi:

let jePalindrom w = w == reverse w
wordIndicesWith jePalindrom "bla rar kuk mjau" => [1, 2]

Nadam se da je pomoglo,

Siniša

Jan Snajder

unread,
Nov 1, 2011, 1:52:17 PM11/1/11
to Haskell-FER
Predikat je (u ovom slučaju) funkcija 'p' tipa:
p :: String -> Bool

dakle funkcija koja uzima string i vraća True ili False,
po kojem god kriteriju definirana.
(Konkretna definicija se prepušta korisniku.)

Mislim da je Siniša lijepo objasnio,
ali ako ipak nije jasno, pitajte opet.

LP
Jan

On Nov 1, 6:47 pm, Siniša Biđin <sin...@bidin.cc> wrote:
> Datuma 1. studenoga 2011. 18:28 Joel Mislav Kunst <7sed...@gmail.com>

Joel Mislav Kunst

unread,
Nov 1, 2011, 2:07:50 PM11/1/11
to haske...@googlegroups.com
je je jasno sada hvala :)

Joel Mislav Kunst

unread,
Nov 1, 2011, 4:39:37 PM11/1/11
to haske...@googlegroups.com
jel moze neki hint/savijet oko 10c

Filip Petkovski

unread,
Nov 1, 2011, 5:06:35 PM11/1/11
to haske...@googlegroups.com
Kako pametno splitati po zarezu u 3. zadatku? Smijemo li koristiti gotovu split funkciju ili trebamo napisati nasu?
I postoji li uopce nacin da se takav string parsira a da se ne koristi klasicno splitanje?

2011/11/1 Joel Mislav Kunst <7se...@gmail.com>
jel moze neki hint/savijet oko 10c

--
You received this message because you are subscribed to the Google Groups "Haskell-FER" group.
To post to this group, send email to haske...@googlegroups.com.
To unsubscribe from this group, send email to haskell-fer...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/haskell-fer?hl=en.



--
Lijep Pozdrav,
Filip Petkovski

sajkr

unread,
Nov 1, 2011, 5:24:18 PM11/1/11
to haske...@googlegroups.com
postoji ugrađena break funkcija.
break :: (a -> Bool) -> [a] -> ([a], [a])
prvi argument je predikat, treba ti (== ',').
rezultat je (dio prije zareza, dio od zareza pa dalje).

Filip Petkovski

unread,
Nov 1, 2011, 5:30:00 PM11/1/11
to haske...@googlegroups.com
Aj super, bitno da sam ja napisao dodatnih 20 linija koda za jedno obicno splitanje :)

Hvala.

2011/11/1 sajkr <frane....@gmail.com>

--
You received this message because you are subscribed to the Google Groups "Haskell-FER" group.
To view this discussion on the web visit https://groups.google.com/d/msg/haskell-fer/-/0kIJwO_3HqwJ.

To post to this group, send email to haske...@googlegroups.com.
To unsubscribe from this group, send email to haskell-fer...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/haskell-fer?hl=en.

sajkr

unread,
Nov 1, 2011, 6:03:19 PM11/1/11
to haske...@googlegroups.com
exercise is healthy. :)
ma haskell je idealan jezik za pisanje parsera, a u praksi ti vrlo rijetko treba baš split, tako da i ne primijetiš da je u standardnom preludiju oskudica takvih funkcija.

Jan Snajder

unread,
Nov 1, 2011, 6:43:55 PM11/1/11
to Haskell-FER
Pa, možete koristiti break kao što Frane predlaže,
ali to nije bila ideja
(pregled standardnih funkcija ćemo napraviti kasnije).

Budući da je string oblika
"Ime Prezime, Spol, GodinaRodenja",
pri čemu se prezime može sastojati od više riječi,
mislim da je najjednostavnije prvu riječ iz liste riječi uzeti za ime,
zadnje dvije za spol i godinu, a sve što u sredini ostane proglasiti
prezimenom.
Prije svega toga treba svakoj riječi, osim prve, odbaciti zarez, a to
nije teško jer je on na kraju.
Dakle svodi se na take, drop, init.... ne treba break.

LP
Jan

On Nov 1, 10:06 pm, Filip Petkovski <filip.petkov...@fer.hr> wrote:
> Kako pametno splitati po zarezu u 3. zadatku? Smijemo li koristiti gotovu
> split funkciju ili trebamo napisati nasu?
> I postoji li uopce nacin da se takav string parsira a da se ne koristi
> klasicno splitanje?
>
> 2011/11/1 Joel Mislav Kunst <7sed...@gmail.com>

Jan Snajder

unread,
Nov 1, 2011, 6:51:26 PM11/1/11
to Haskell-FER
Hint:
U drugom svjetskom ratu saveznici su imali taktiku isprovocirati neki
čudan događaj, samo kako bi znali da će Nijemci o tome pisati u
šifriranim porukama. Kada bi zatim presreli poruku šifriranu Enigmom,
znali su da mogu očekivati spominjanje te riječi (dakako, na njemačkom
jeziku) u tekstu izvorne poruke. Spoznaja da se neka riječ pojavljuje
u izvornom teksu znatno je olakšavala probijanje poruke, odnosno
kriptoanalizu. Kada međutim nemamo takvu informaciju (ne znamo što se
u tekstu spominje), treba "nabadati" neke riječi koje su česte. U ovom
slučaju poruka je na engleskom, pa treba razmisliti (proguglati) koje
su najčešće riječi u engleskom jeziku. Tu informaciju treba
iskoristiti da se isfiltriraju sve moguće dešifrirane varijante poruke
(jer s ključem od 3 znaka mogućih dešifriranih poruka će ih biti
previše...), tako da ostane samo manji broj njih, koje onda treba
"očno" pregledati, i naći onu pravu.

Pomaže?

LP
Jan

Joel Mislav Kunst

unread,
Nov 1, 2011, 6:54:32 PM11/1/11
to haske...@googlegroups.com
Hint:
U drugom svjetskom ratu saveznici su imali taktiku isprovocirati neki
čudan događaj, samo kako bi znali da će Nijemci o tome pisati u
ąifriranim porukama. Kada bi zatim presreli poruku ąifriranu Enigmom,

znali su da mogu očekivati spominjanje te riječi (dakako, na njemačkom
jeziku) u tekstu izvorne poruke. Spoznaja da se neka riječ pojavljuje
u izvornom teksu znatno je olakąavala probijanje poruke, odnosno
kriptoanalizu. Kada međutim nemamo takvu informaciju (ne znamo ąto se

u tekstu spominje), treba "nabadati" neke riječi koje su česte. U ovom
slučaju poruka je na engleskom, pa treba razmisliti (proguglati) koje
su najčeąće riječi u engleskom jeziku. Tu informaciju treba
iskoristiti da se isfiltriraju sve moguće deąifrirane varijante poruke
(jer s ključem od 3 znaka mogućih deąifriranih poruka će ih biti
previąe...), tako da ostane samo manji broj njih, koje onda treba

"očno" pregledati, i naći onu pravu.

Pomaľe?

pa tako nesto sam napravio ali nisam uspio doci do smislenog rjesenja 

Jan Snajder

unread,
Nov 1, 2011, 6:58:48 PM11/1/11
to Haskell-FER
Ako ste dobili rečenicu na engleskom, onda je to rješenje.
Možda Vam rečenica neće imati smisla, ali imat će kroz tjedan-dva. :-)

Ako niste dobili rečenicu na engleskom,
onda provjerite da:
(0) 'vigenere' i 'unvigenere' rade ispravno,
(1) isprobavate doista sve moguće ključeve duljine tri,
(2) probajte filtrirati po nekim drugim engleskim riječima... možda
nemate sreće s ovima koje ste odabrali.

LP
Jan

Joel Mislav Kunst

unread,
Nov 1, 2011, 8:23:34 PM11/1/11
to haske...@googlegroups.com
Ako ste dobili rečenicu na engleskom, onda je to rješenje.
Možda Vam rečenica neće imati smisla, ali imat će kroz tjedan-dva. :-)

Ako niste dobili rečenicu na engleskom,
onda provjerite da:
(0) 'vigenere' i 'unvigenere' rade ispravno,
(1) isprobavate doista sve moguće ključeve duljine tri,
(2) probajte filtrirati po nekim drugim engleskim riječima... možda
nemate sreće s ovima koje ste odabrali.

dobio sam recenicu, samo kaj ju nisam odmah prepoznao :D 

Ante Kegalj

unread,
Nov 14, 2011, 4:19:34 PM11/14/11
to Haskell-FER
Zanima me kako mogu označiti da završavam s case izrazom . Ima li neka
end-case ključna riječ ili se sve radi s uvlačenjem?

od slijedećeg programa htio bih ispis "Ovo je super"

prog = "Ovo " ++ case 1 of
1 -> "je"
2 -> "nije"
++ " super"

htio bih ovakvo prelamanje case u više linija, ne da bude u jednoj
liniji.

Ante Kegalj

unread,
Nov 14, 2011, 4:28:45 PM11/14/11
to Haskell-FER
[Solved] Uspio sam s zagradama, zaboravio sam da se radi o izrazu. Hvala.

2011/11/14 Ante Kegalj <ake...@gmail.com>
Zanima me kako mogu označiti da zavrąavam s case izrazom . Ima li neka

end-case ključna riječ ili se sve radi s uvlačenjem?

od slijedećeg programa htio bih ispis "Ovo je super"

prog = "Ovo " ++ case 1 of
 1 -> "je"
 2 -> "nije"
++ " super"

htio bih ovakvo prelamanje case u viąe linija, ne da bude u jednoj
liniji.

Ante Kegalj

unread,
Nov 15, 2011, 1:58:20 AM11/15/11
to Haskell-FER
Zadatak 3. iz domace zadace 3:
  Koji bi trebao biti izlaz za "pairs [2,2,2,2]" ?

Zadatak 4.b iz domace zadace 3:
  Kaze kako bi tip funkcije trebao biti group' :: Eq a => [a] -> [(a,Int)] znaći li to da će izlaz za "group' "blaa"" biti "[('b',1),('l',1),(a,'2')]" ?  To mi više izgleda da je zadatak za count a ne za group. Bi li možda definicija za group' trebala biti group' :: Eq a => [a] -> [[a]]?
 

2011/11/14 Ante Kegalj <ake...@gmail.com>

Jan Snajder

unread,
Nov 15, 2011, 5:07:14 AM11/15/11
to Haskell-FER
Ante,

Bilo je grešaka u DZ3. Stavio sam ispravljenu verziju. Evo o čemu se
radi:

On Nov 15, 7:58 am, Ante Kegalj <akeg...@gmail.com> wrote:
> Zadatak 3. iz domace zadace 3:
>   Koji bi trebao biti izlaz za "pairs [2,2,2,2]" ?

Zaboravio sam napisati da funkcija "pairs" pretpostavlja da lista nema
duplikate. Dakle, slučaj za [2,2,2,2] nije zanimljiv, ali očekuje se:
pairs [2,2,2,2] => [(2,2),(2,2),(2,2),(2,2),(2,2),(2,2)]
ako svaku '2' tretirate kao poseban element.

> Zadatak 4.b iz domace zadace 3:
>   Kaze kako bi tip funkcije trebao biti group' :: Eq a => [a] -> [(a,Int)]
> znaći li to da će izlaz za "group' "blaa"" biti "[('b',1),('l',1),(a,'2')]"
> ?  To mi više izgleda da je zadatak za count a ne za group. Bi li možda
> definicija za group' trebala biti group' :: Eq a => [a] -> [[a]]?

Da, u pravu ste, tip funkcije za group je:
group' :: Eq a => [a] -> [[a]]

Data.List.group i group' su istog tipa, ali je razlika u tome što prva
očekuje sortiranu listu, a group' ne.

Inače, nisa napomenuo da zadatke iz DZ3 ne morate (i nemojte, osim ako
ne znate drugačije) rješavati rekurzivnim funkcijama. To ćemo raditi u
DZ4.

LP
Jan

> 2011/11/14 Ante Kegalj <akeg...@gmail.com>
>
>
>
>
>
>
>
> > [Solved] Uspio sam s zagradama, zaboravio sam da se radi o izrazu. Hvala.
>
> > 2011/11/14 Ante Kegalj <akeg...@gmail.com>

Ratko Šimić

unread,
Nov 14, 2011, 5:43:03 PM11/14/11
to Haskell-FER
molim vas , možete li napisati kakav primjer ulaza i izlaza za vjezbu
1.4.
malo sam se pogubio što se zapravo traži u zadataku.
hvala!

On Nov 14, 10:28 pm, Ante Kegalj <akeg...@gmail.com> wrote:
> [Solved] Uspio sam s zagradama, zaboravio sam da se radi o izrazu. Hvala.
>
> 2011/11/14 Ante Kegalj <akeg...@gmail.com>

Ratko Šimić

unread,
Nov 16, 2011, 9:01:59 AM11/16/11
to Haskell-FER
U petom zadatku pretpostavljam u signaturi treba biti Double umjesto
Int, zar ne?

Siniša Biđin

unread,
Nov 16, 2011, 1:00:48 PM11/16/11
to haske...@googlegroups.com
On Nov 14, 11:43 pm, Ratko Šimić <trell...@gmail.com> wrote:
> molim vas , možete li napisati kakav primjer ulaza i izlaza za vjezbu
> 1.4.
> malo sam se pogubio što se zapravo traži u zadataku.
> hvala!

Taj bi zadatak trebao biti ekvivalentan ovome:

"Napišite funkciju koja uzima listu *listi* **listi** i vraća listu
onih *listi* čija su početna tri elementa **liste** s barem jednim
elementom."

Zadatak malo uzrokuje vrtoglavicu jer je smišljen da bolje naučimo
podudaranje uzoraka. :) Evo i primjera:

let jedna = [[1, 2], [], [6], [9]] -- neće proći
let druga = [[7, 3], [1], [12], []] - proći će

f :: [[[a]]] -> [[[a]]]
f [jedna, druga] => [druga]
f [jedna] => []

2011/11/16 Ratko Šimić <trel...@gmail.com>:


> U petom zadatku pretpostavljam u signaturi treba biti Double umjesto
> Int, zar ne?

Da, tako je! Slučajna greška.

Pozdrav,

Siniša

Jan Snajder

unread,
Nov 16, 2011, 3:03:20 PM11/16/11
to Haskell-FER
Išao sam čitati zadatak 1.4 ponovo i moram priznati da mi ništa mi
nije bilo jasno :-)
Ali ovo kako je Siniša objasnio je ok!

LP
Jan

On Nov 16, 7:00 pm, Siniša Biđin <sin...@bidin.cc> wrote:
> On Nov 14, 11:43 pm, Ratko Šimić <trell...@gmail.com> wrote:
>
> > molim vas , možete li napisati kakav primjer ulaza i izlaza za vjezbu
> > 1.4.
> > malo sam se pogubio što se zapravo traži u zadataku.
> > hvala!
>
> Taj bi zadatak trebao biti ekvivalentan ovome:
>
> "Napišite funkciju koja uzima listu *listi* **listi** i vraća listu
> onih *listi* čija su početna tri elementa **liste** s barem jednim
> elementom."
>
> Zadatak malo uzrokuje vrtoglavicu jer je smišljen da bolje naučimo
> podudaranje uzoraka. :) Evo i primjera:
>
> let jedna = [[1, 2], [], [6], [9]] -- neće proći
> let druga = [[7, 3], [1], [12], []] - proći će
>
> f :: [[[a]]] -> [[[a]]]
> f [jedna, druga] => [druga]
> f [jedna] => []
>
> 2011/11/16 Ratko Šimić <trell...@gmail.com>:

Jan Snajder

unread,
Nov 17, 2011, 4:21:56 AM11/17/11
to Haskell-FER
Da, točno. Ispravio sam. Hvala.
LP
Jan

Ratko Šimić

unread,
Dec 8, 2011, 6:46:04 PM12/8/11
to Haskell-FER

Jedno pitanje oko recenzije 2. dz...
Komentar: 1.4 inCircle' bi trebao generirati veći ili manji broj
točaka ovisno o razlučivosti. [-0.3]Testirao sam funkciju - uzme
radijus, koordinate i razlučivost i vraća točke ovisno o
razlučivosti.Zar nije to ono što se tražilo? :-)
ghci> inCircle' 1 0 0 1[(0.0,0.0)]ghci> inCircle' 1 0 0 0.9[(-0.9,0.0),
(0.0,-0.9),(0.0,0.0),(0.0,0.9),(0.9,0.0)]
LP,Ratko

Frane Perleta

unread,
Dec 9, 2011, 10:48:00 AM12/9/11
to haske...@googlegroups.com
2011/12/9 Ratko Šimić <trel...@gmail.com>

tvoj kod uvijek generira jednako mnogo točaka, izvlačiš a i b iz [-10..10], a zatim ih (nakon filtriranja) skaliraš u skladu s razlučivošću.
većina drugih rješenja koja sam vidio izvlače a i b iz [-10, -10 + s .. 10], dakle u ovisnosti o s-u (koji je kao razmak među točkama obrnuto proporcionalan razlučivosti) stvorit će se veći ili manji broj točaka.

kaže wiktionary za "resolution":
The degree of fineness with which an image can be recorded or produced, often expressed as the number of pixels per unit of length (typically an inch).
u skladu s tom definicijom, veća razlučivost bi trebala podrazumijevati "gušću" rešetku.

dva su načina za postizanje veće gustoće rešetke - ili se poveća broj vertikalnih i horizontalnih linija u rešetci (većina je to tako izvela), ili se rešetka skalira (to si ti htio napraviti). budući da u zadatku to nije ekplicirano, po meni su oba pristupa prihvatljiva.
međutim, tvoje rješenje koristi uvjet (a-x)^2 + (b-y)^2 < (r/rez)^2. dakle, ne skaliraš a i b, ali skaliraš r (wat?), pa potom generiraš dvojke sa (a*rez, b*rez).
jel ti sad jasnije u čemu je greška?

LP,Ratko

Matija Sosic

unread,
Jan 1, 2012, 5:54:24 PM1/1/12
to Haskell-FER
Molio bih pomoc oko 1.3 zadatka iz lekcije 10.lhs (funkcija sister)
Moze li se rijesiti bez definiranja Eq za Person2?
Mislio sam napraviti presjek (ili uniju, ovisi o definiciji sestre)
djece od oca i djece od majke. Zatim izbacim duplikate, osobu za koju
se provjera pozive i musku djecu. Bi li mozda funkcija trebala vracati
Maybe [Person2], posto osoba moze imati vise sestara?

Hvala

Jan Snajder

unread,
Jan 2, 2012, 5:49:08 PM1/2/12
to Haskell-FER
Hm, to neće ići bez definiranja instance za Eq jer će prije ili
kasnije trebati napraviti provjere jednakosti odnosno različitosti.
Nažalost, Person2 nema idNumber. Ili definirajte instancu Eq temeljem
usporedbe imena i prezimena, ili dodajte idNumber u Person2.

Što se povratne vrijednosti tiče: da, "Maybe Person2" je malo loše.
"Maybe [Person2]" ne bi baš bilo tipično,
onda je bolje jednostavno "[Person2]", ako već želimo vraćati više
osoba.
Dakle, ili ostavite "Maybe Person2" pa vratite jednu sestru,
ili promijenite u "[Person2]".

Jan

S. A.

unread,
Jan 20, 2012, 6:31:28 PM1/20/12
to Haskell-FER
Ovo zaboravljam pitat vec duze vremena ... stoga da ne zaboravim opet

Za proc vjestinu nam treba 50 % bodova sveukupno ili barem po 50 % na
svakoj domacoj.

Recimo da sam proslu (sedmu) rjesio skoro nista.

// p. s. izgleda da sam slao ovu poruku nekomu od vas jer sam odabra
opciju odgovori autoru, a ne odgovori na temu ... Ispričavam se komu
god da sam poslao, vjerujem da su bile takve dvije poruke.

Joel Mislav Kunst

unread,
Jan 21, 2012, 4:43:17 AM1/21/12
to haske...@googlegroups.com
samo da pitam gdje je ta anketa koju bi trebali ispuniti?

Jan Snajder

unread,
Jan 21, 2012, 6:40:01 AM1/21/12
to Haskell-FER
50% ukupno na svim DZ, ali svaku DZ treba predati imati > 0.

Jan

Jan Snajder

unread,
Jan 21, 2012, 6:40:45 AM1/21/12
to Haskell-FER
Tamo gdje su ankete i za sve druge predmete... ne znam točno gdje se
to vama nalazi na ferwebu.

Ivan Krišto

unread,
Jan 21, 2012, 6:56:58 AM1/21/12
to haske...@googlegroups.com
2012/1/21 Joel Mislav Kunst <7se...@gmail.com>:

> samo da pitam gdje je ta anketa koju bi trebali ispuniti?

http://www.fer.unizg.hr/intranet/studenti/studentska_anketa

Reply all
Reply to author
Forward
0 new messages