Má Haskell budoucnost?

v

Re:Má Haskell budoucnost?
« Odpověď #120 kdy: 15. 05. 2016, 14:58:05 »
a to má být výhoda těch jiných jazyků?
1. Tohle téma se odpíchlo od Andyho otázky "Já fakt nechápu, co je za komplikace v default-lazy jazyku."
2. Někdo (třeba já) to za výhodu může považovat, protože si může myslet, že programování pomocí sousledných kroků je přirozenější lidskému myšlení a tudíž to chceme jako default a pomocí bižuterie chceme dosahovat lazyness, ne opačně.
1. lazy a pure jsou jiné koncepty
2. výhoda proti haskellu by to byla, kdyby to v haskellu nešlo nebo šlo složitě, jestli tou bižuterií myslíte IO monádu, tak viz bod 1


Re:Má Haskell budoucnost?
« Odpověď #121 kdy: 15. 05. 2016, 15:05:27 »
1. lazy a pure jsou jiné koncepty
Ale úzce spolu souvisí. Znáš nějaký default-lazy (call by name) jazyk, který není pure?

Kromě toho, k tomu, aby ti ty problémy s řazením IO vznikly, je lazyness podmínka dostačující:
Kód: [Vybrat]
a = print "a"
b = print "b"
f(a,b)
- pokud by ten jazyk byl lazy, v jakém pořadí vytiskne "a" a "b"? Na základě čeho?

v

Re:Má Haskell budoucnost?
« Odpověď #122 kdy: 15. 05. 2016, 15:20:04 »
1. lazy a pure jsou jiné koncepty
Ale úzce spolu souvisí. Znáš nějaký default-lazy (call by name) jazyk, který není pure?

Kromě toho, k tomu, aby ti ty problémy s řazením IO vznikly, je lazyness podmínka dostačující:
Kód: [Vybrat]
a = print "a"
b = print "b"
f(a,b)
- pokud by ten jazyk byl lazy, v jakém pořadí vytiskne "a" a "b"? Na základě čeho?
tak hlavně, že programování pomocí sousledných kroků v haskellu není problém

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Má Haskell budoucnost?
« Odpověď #123 kdy: 15. 05. 2016, 15:22:49 »
1) Monády jsou složitý aparát? Dvě funkce a dvě rovnice, která musí splňovat, to mi přijde jako celkem málo.
No jo no, ale vidíš, jak se na tom lidi zasekávaj :)

2) Lambda kalkulus ale není programovací jazyk, right? I do Lispu při vší jeho jednoduchosti naplácali informatici různé ptákoviny (z matematického pohledu).
Ale matematici za to všechno můžou jako prvotní příčina! ;)
1) Mě by zajímalo, kolik procent lidí monády chápe, resp. kolik lidí je pochopí po přečtení řekněme článku na Wikipedii nebo původního článku z roku 1990. Protože mi připadá, že jde o jednoduchý koncept, ale kde kdo si napíše svůj "ultimate monad tutorial", aniž by monádám rozuměl, čímž zmate další lidi a díky efektu sněhové koule se tento nešvar rozrůstá a zároveň vzniká dojem, že monády jsou něco magického až ezoterického. Přitom stačí příklad na stránku.
2) Jistě, od matematiků to vzešlo, ale spíše bych to formuloval tak, že matematici vymysleli jednoduchou a přímočarou teorii, jíž se poté chopili informatici, "hezky" to všechno zesložitili (lidově řečeno doje*ali) a teď brečí, že se tomu nedá rozumět.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Má Haskell budoucnost?
« Odpověď #124 kdy: 15. 05. 2016, 15:26:19 »
1. lazy a pure jsou jiné koncepty
Ale úzce spolu souvisí. Znáš nějaký default-lazy (call by name) jazyk, který není pure?

Kromě toho, k tomu, aby ti ty problémy s řazením IO vznikly, je lazyness podmínka dostačující:
Kód: [Vybrat]
a = print "a"
b = print "b"
f(a,b)
- pokud by ten jazyk byl lazy, v jakém pořadí vytiskne "a" a "b"? Na základě čeho?

Tak purity a laziness (sic!) jsou ortogonální koncepty, a zrovna ten druhý nepovažuju za příliš šťastnou volbu.


Re:Má Haskell budoucnost?
« Odpověď #125 kdy: 15. 05. 2016, 15:35:19 »
Tak purity a laziness (sic!) jsou ortogonální koncepty, a zrovna ten druhý nepovažuju za příliš šťastnou volbu.
A jaký smysl by mělo mít jazyk, který by byl čistý ale ne lazy? Pokud je čistý, tak tam funguje referenční transparentnost, takže v čem by ta non-laziness (díky za upozornění na chybu!) měla spočívat?

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Má Haskell budoucnost?
« Odpověď #126 kdy: 15. 05. 2016, 15:47:23 »
Tak purity a laziness (sic!) jsou ortogonální koncepty, a zrovna ten druhý nepovažuju za příliš šťastnou volbu.
A jaký smysl by mělo mít jazyk, který by byl čistý ale ne lazy? Pokud je čistý, tak tam funguje referenční transparentnost, takže v čem by ta non-laziness (díky za upozornění na chybu!) měla spočívat?

To je právě ono, laziness je v takovém případě irelevantní a vztahuje se jen na implementaci (kde má smysl o ní uvažovat). Proto píšu, že jsou to koncepty ortogonální. Asi jsem se špatně vyjádřil, považuju za poněkud nešťastné o "(non)laziness" vůbec uvažovat, protože při zachování rozumných vlastností (především té již zmíněné čistoty) není smysluplné o ní mluvit.

Re:Má Haskell budoucnost?
« Odpověď #127 kdy: 15. 05. 2016, 15:50:56 »
To je právě ono, laziness je v takovém případě irelevantní a vztahuje se jen na implementaci (kde má smysl o ní uvažovat). Proto píšu, že jsou to koncepty ortogonální. Asi jsem se špatně vyjádřil, považuju za poněkud nešťastné o "(non)laziness" vůbec uvažovat, protože při zachování rozumných vlastností (především té již zmíněné čistoty) není smysluplné o ní mluvit.
Právě proto nerozumím tomu, proč jim říkáš ortogonální. Podle mě jsou naopak vzájemně závislé přesně z tohodle důvodu.

Ale to je jedno, nebudem slovíčkařit :) jinak si myslím rozumíme.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Má Haskell budoucnost?
« Odpověď #128 kdy: 15. 05. 2016, 15:54:46 »
To je právě ono, laziness je v takovém případě irelevantní a vztahuje se jen na implementaci (kde má smysl o ní uvažovat). Proto píšu, že jsou to koncepty ortogonální. Asi jsem se špatně vyjádřil, považuju za poněkud nešťastné o "(non)laziness" vůbec uvažovat, protože při zachování rozumných vlastností (především té již zmíněné čistoty) není smysluplné o ní mluvit.
Právě proto nerozumím tomu, proč jim říkáš ortogonální. Podle mě jsou naopak vzájemně závislé přesně z tohodle důvodu.

Ale to je jedno, nebudem slovíčkařit :) jinak si myslím rozumíme.

Myslel jsem laziness v implementaci, ne koncepční, ale to už ti asi došlo, takže ano, rozumíme si a dokonce se i shodneme ;)
Možná bychom se po nějaké diskusi shodli i na těch monádách :)

Re:Má Haskell budoucnost?
« Odpověď #129 kdy: 15. 05. 2016, 16:19:06 »
Tak purity a laziness (sic!) jsou ortogonální koncepty, a zrovna ten druhý nepovažuju za příliš šťastnou volbu.
A jaký smysl by mělo mít jazyk, který by byl čistý ale ne lazy? Pokud je čistý, tak tam funguje referenční transparentnost, takže v čem by ta non-laziness (díky za upozornění na chybu!) měla spočívat?

take(3, [1..])
take(3, [1,2,3,4,5/0]

def foo = foo
take(3, [1,2,3,4,foo]

Jak (a zda) to skonci zalezi na tom, zda je jazyk liny nebo ne.

v

Re:Má Haskell budoucnost?
« Odpověď #130 kdy: 15. 05. 2016, 16:30:57 »
Tak purity a laziness (sic!) jsou ortogonální koncepty, a zrovna ten druhý nepovažuju za příliš šťastnou volbu.
A jaký smysl by mělo mít jazyk, který by byl čistý ale ne lazy? Pokud je čistý, tak tam funguje referenční transparentnost, takže v čem by ta non-laziness (díky za upozornění na chybu!) měla spočívat?
tak už tady byl zmíněn ten PureScript

Re:Má Haskell budoucnost?
« Odpověď #131 kdy: 15. 05. 2016, 17:03:53 »
Jak (a zda) to skonci zalezi na tom, zda je jazyk liny nebo ne.
Ty výrazy mají přesně definovanou hodnotu a jakým způsobem se na ni převedou (jestli korektně nebo nekorektně) je jenom o implementaci, ne o jazyku. To je to, co říkal zboj.

Pokud by se program na těch výrazech zasekl, tak ten jazyk nesplňuje referenční transparentnost, což je definiční znak pure jazyka.
« Poslední změna: 15. 05. 2016, 17:05:50 od Mirek Prýmek »

Re:Má Haskell budoucnost?
« Odpověď #132 kdy: 15. 05. 2016, 17:05:19 »
tak už tady byl zmíněn ten PureScript
Jenže tam to je z toho implementačního (meta) důvodu, který byl taky zmíněn - transpilace do čitelného JS.

Re:Má Haskell budoucnost?
« Odpověď #133 kdy: 15. 05. 2016, 17:06:11 »
Ty výrazy mají přesně definovanou hodnotu a jakým způsobem se na ni převedou (jestli korektně nebo nekorektně) je jenom o implementaci, ne o jazyku. To je to, co říkal zboj.

Pokud by se program na těch výrazech zasekl, tak nesplňuje referenční transparentnost, což je definiční znak pure jazyka.

Ne.

Re:Má Haskell budoucnost?
« Odpověď #134 kdy: 15. 05. 2016, 17:06:55 »
Ne.
Co ne? Není venku slunečno? Souhlasím :)