Zkouška z funkcionálního programování

desprit

Zkouška z funkcionálního programování
« kdy: 22. 06. 2017, 06:52:34 »
Čeká mě zkouška z funkcionálního programování a kámoš právě vyletěl, když jako definici kategorie typů uvedl "objekty jsou typy a šipky jsou funkce mezi nimi". Nedostal se ani k důkazu, že definice má smysl. Mi to přijde správně, zjevně je v tom nějaký háček, víte někdo správnou odpověď?


Re:Zkouška z FP
« Odpověď #1 kdy: 22. 06. 2017, 08:56:08 »
Je to věcně správně. Pan učitel si možná potrpí na formálnější onanii, nemá rád slovo "šipka" a vyžaduje "morfismus" ;)

P.S. Na jaké je to škole, že se v rámci FP učí CT? Nebo je to nějaký pokročilý předmět z FP?

zboj

  • *****
  • 1 507
Re:Zkouška z FP
« Odpověď #2 kdy: 22. 06. 2017, 09:10:48 »
Citace od: Mirek Prýmek kdy 22. 06. 2017, 08:56:08
Je to věcně správně. Pan učitel si možná potrpí na formálnější onanii, nemá rád slovo "šipka" a vyžaduje "morfismus" ;)
I ty, Brute? Nope, je to věcně špatně a pan učitel si asi potrpí jen na přesnost (jaký to div ve světě matematiky). Morfismy (šipky se říká běžně, to problém není) nejsou všechny funkce, ale jen ty vyčíslitelné. Kdyby se braly v úvahu všechny, tak by to už nebyla kategorie (a taky to v FP nemá smysl).

Akorát teda nevím, jestli to je hned na vyhození, "kámoš" asi řekl ještě další kraviny nebo se hádal, že slůvko sem slůvko tam nehraje roli. Kolega takhle jednou vyhodil studenta, který tvrdil, že logika řádu n>=2 je neúplná, přičemž stačilo upřesnit formulaci, ale pako student se začalo hádat...  :D

Re:Zkouška z FP
« Odpověď #3 kdy: 22. 06. 2017, 09:18:28 »
Citace od: zboj kdy 22. 06. 2017, 09:10:48
(šipky se říká běžně, to problém není)
Arrow je v Haskellu něco jinýho, proto by mu to teoreticky mohlo vadit, kdyby si chtěl na studentovi honit triko.

Citace od: zboj kdy 22. 06. 2017, 09:10:48
nejsou všechny funkce, ale jen ty vyčíslitelné. Kdyby se braly v úvahu všechny, tak by to už nebyla kategorie (a taky to v FP nemá smysl).
Že by ho vyhodil na takovou kravinu? No, jestli je debil, nebo jestli student dělal chytrýho, tak je to možný.

zboj

  • *****
  • 1 507
Re:Zkouška z FP
« Odpověď #4 kdy: 22. 06. 2017, 09:26:28 »
Citace od: Mirek Prýmek kdy 22. 06. 2017, 09:18:28
Citace od: zboj kdy 22. 06. 2017, 09:10:48
nejsou všechny funkce, ale jen ty vyčíslitelné. Kdyby se braly v úvahu všechny, tak by to už nebyla kategorie (a taky to v FP nemá smysl).
Že by ho vyhodil na takovou kravinu? No, jestli je debil, nebo jestli student dělal chytrýho, tak je to možný.
Toto rozlišení je celkem podstatné a v definici Hask se běžně nějaká ekvivalentní formulace uvádí. Funkce i jen z N do N můžou být docela svině.


JS

Re:Zkouška z FP
« Odpověď #5 kdy: 22. 06. 2017, 09:40:31 »
Citace od: zboj kdy 22. 06. 2017, 09:10:48
Kdyby se braly v úvahu všechny, tak by to už nebyla kategorie

To mi nejak neni jasny, muzes to vysvetlit? Axiomy kategorie (tranzitivita a identita) to, zda se mi, splnuje.

v

Re:Zkouška z FP
« Odpověď #6 kdy: 22. 06. 2017, 09:43:25 »
Citace od: JS kdy 22. 06. 2017, 09:40:31
Citace od: zboj kdy 22. 06. 2017, 09:10:48
Kdyby se braly v úvahu všechny, tak by to už nebyla kategorie

To mi nejak neni jasny, muzes to vysvetlit? Axiomy kategorie (tranzitivita a identita) to, zda se mi, splnuje.
možná tohle http://math.andrej.com/2016/08/06/hask-is-not-a-category/

zboj

  • *****
  • 1 507
Re:Zkouška z FP
« Odpověď #7 kdy: 22. 06. 2017, 09:57:43 »
Citace od: JS kdy 22. 06. 2017, 09:40:31
Citace od: zboj kdy 22. 06. 2017, 09:10:48
Kdyby se braly v úvahu všechny, tak by to už nebyla kategorie

To mi nejak neni jasny, muzes to vysvetlit? Axiomy kategorie (tranzitivita a identita) to, zda se mi, splnuje.
Když třeba v Haskellu budu uvažovat i funkce, co ne vždy ukončí výpočet, tak na nich nejde rozumně nadefinovat ekvivalence (viz nedávná diskuze zde o ekvivalenci v JS), takže pak nedávají smysl třeba komutativní diagramy a veškeré definice ztrácí smysl.

Re:Zkouška z FP
« Odpověď #8 kdy: 22. 06. 2017, 09:59:11 »
Citace od: zboj kdy 22. 06. 2017, 09:57:43
Když třeba v Haskellu budu uvažovat i funkce, co ne vždy ukončí výpočet, tak na nich nejde rozumně nadefinovat ekvivalence (viz nedávná diskuze zde o ekvivalenci v JS), takže pak nedávají smysl třeba komutativní diagramy a veškeré definice ztrácí smysl.
Dalo by se to asi říct i jednodušeji neformálně: pokud je funkce z Int do bottom, tak bys musel mít typ bottom, ale na něm nejde udělat identita.

zboj

  • *****
  • 1 507
Re:Zkouška z FP
« Odpověď #9 kdy: 22. 06. 2017, 10:05:03 »
Citace od: Mirek Prýmek kdy 22. 06. 2017, 09:59:11
Citace od: zboj kdy 22. 06. 2017, 09:57:43
Když třeba v Haskellu budu uvažovat i funkce, co ne vždy ukončí výpočet, tak na nich nejde rozumně nadefinovat ekvivalence (viz nedávná diskuze zde o ekvivalenci v JS), takže pak nedávají smysl třeba komutativní diagramy a veškeré definice ztrácí smysl.
Dalo by se to asi říct i jednodušeji neformálně: pokud je funkce z Int do bottom, tak bys musel mít typ bottom, ale na něm nejde udělat identita.
Jo, to sis teď našel  :P Prostě to kvůli tomuto nebude kategorie. IMHO je lepší uvažovat jen funkce v matematickém smyslu, je to stejný rozdíl jako třeba svaz všech podmnožin nějakého X a svaz všech konstruovatelných podmnožin, je to nějaká slušně se chovající algebraická struktura a že má nějaké relativně hnusné množiny navíc mě zajímat moc nemusí. Ostatně třeba u modelu ZFC mi je tak fuk, jestli je spočetný...

Re:Zkouška z FP
« Odpověď #10 kdy: 22. 06. 2017, 10:11:27 »
Citace od: zboj kdy 22. 06. 2017, 10:05:03
Jo, to sis teď našel  :P
Naopak, teprve jak jsem to napsal, tak jsem klikl na ten link výš a uzarděl se, že jdu s dřívím do lesa ;)

zboj

  • *****
  • 1 507
Re:Zkouška z FP
« Odpověď #11 kdy: 22. 06. 2017, 10:17:52 »
Citace od: Mirek Prýmek kdy 22. 06. 2017, 10:11:27
Citace od: zboj kdy 22. 06. 2017, 10:05:03
Jo, to sis teď našel  :P
Naopak, teprve jak jsem to napsal, tak jsem klikl na ten link výš a uzarděl se, že jdu s dřívím do lesa ;)
Každopádně jde o docel zajímavý vhled, ne? Jedním z důsledků například je, že monády ve FP nejsou monády :)

Re:Zkouška z FP
« Odpověď #12 kdy: 22. 06. 2017, 10:19:14 »
Citace od: zboj kdy 22. 06. 2017, 10:17:52
Každopádně jde o docel zajímavý vhled, ne? Jedním z důsledků například je, že monády ve FP nejsou monády :)
Ani ne, důsledky pro praktické programování to nemá žádné.

zboj

  • *****
  • 1 507
Re:Zkouška z FP
« Odpověď #13 kdy: 22. 06. 2017, 10:29:00 »
Citace od: Mirek Prýmek kdy 22. 06. 2017, 10:19:14
Citace od: zboj kdy 22. 06. 2017, 10:17:52
Každopádně jde o docel zajímavý vhled, ne? Jedním z důsledků například je, že monády ve FP nejsou monády :)
Ani ne, důsledky pro praktické programování to nemá žádné.
Protože v praktickém programování se FP nepoužívá...

Re:Zkouška z FP
« Odpověď #14 kdy: 22. 06. 2017, 10:30:54 »
Citace od: zboj kdy 22. 06. 2017, 10:29:00
Protože v praktickém programování se FP nepoužívá...
Ani pro praktické programování v Haskellu to žádný důsledek nemá.