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ěď?
« Poslední změna: 22. 06. 2017, 09:03:37 od Petr Krčmář »


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
    • Zobrazit profil
    • E-mail
Re:Zkouška z FP
« Odpověď #2 kdy: 22. 06. 2017, 09:10:48 »
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 »
(š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.

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
    • Zobrazit profil
    • E-mail
Re:Zkouška z FP
« Odpověď #4 kdy: 22. 06. 2017, 09:26:28 »
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 »
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 »
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
    • Zobrazit profil
    • E-mail
Re:Zkouška z FP
« Odpověď #7 kdy: 22. 06. 2017, 09:57:43 »
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 »
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
    • Zobrazit profil
    • E-mail
Re:Zkouška z FP
« Odpověď #9 kdy: 22. 06. 2017, 10:05:03 »
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 »
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
    • Zobrazit profil
    • E-mail
Re:Zkouška z FP
« Odpověď #11 kdy: 22. 06. 2017, 10:17:52 »
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 »
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
    • Zobrazit profil
    • E-mail
Re:Zkouška z FP
« Odpověď #13 kdy: 22. 06. 2017, 10:29:00 »
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 »
Protože v praktickém programování se FP nepoužívá...
Ani pro praktické programování v Haskellu to žádný důsledek nemá.