Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Ondra Satai Nekola

Stran: 1 ... 124 125 [126] 127 128 ... 177
1876
Vývoj / Re:Má Haskell budoucnost?
« kdy: 15. 05. 2016, 21:57:46 »

1877
Vývoj / Re:Má Haskell budoucnost?
« kdy: 15. 05. 2016, 21:49:08 »
V tom případě by IO monádu nepotřeboval, protože řazení IO by pak šlo triviálně udělat takhle:
Kód: [Vybrat]
f(print "b",g(print "a"))
- dle té definice by pořadí výpisu nutně bylo a,b. Funkce f a g můžou dělat cokoli, může to být klidně identita.

Tak to zase ne.
Ze je jazyk striktni jeste neznamena, ze je urcene poradi vyhodnocovani parametru funkce! Pouze to, ze jsou vsechny vyhodnocene jeste driv, nez se pokracuje tou funkci.

(Jinak to, co ukazujes, uz samozrejme neni pure.)

1878
Vývoj / Re:Má Haskell budoucnost?
« kdy: 15. 05. 2016, 20:26:40 »
tvrdíte, že kdyby byl haskell "strict", nepotřeboval by IO monádu?
To byste musel definovat, co myslíte tím "strict" v kontextu pure jazyka. Já pořád moc nevím, co si pod tím mám představit.

Mel jsi tu par prikladu, kdy se ti neco 'vyhodnoti' bud na ⊥ nebo jinou hodnotu podle toho zda predavas parametry striktne nebo line. Ty priklady se chovaji stejne v pure i nepure jazycich.

Edit: v mne, koukam, predbehl ;)


1879
Vývoj / Re:Má Haskell budoucnost?
« kdy: 15. 05. 2016, 18:23:41 »
Ve striktnim jazyce cokoli v podobe baz(..., ⊥, ...) je ⊥. V non-strict muze a nemusi.
Souhlas. A plyne z toho co?

Teoreticky - lazy je u pure FP "lepsi", protoze toho spocita vic.
Prakticky - nic moc, protoze zase zaplatis praktickou cenu v realne implementaci.

1880
Vývoj / Re:Má Haskell budoucnost?
« kdy: 15. 05. 2016, 18:19:13 »
Ale, ale.
Kód: [Vybrat]
int foo() { for (;;); }

int bar(a, b) { return a; }

bar(1,foo());
a zase mas ⊥ (jenom tomu proste Ceckar tak nerika, protoze zije v jinem svete)
To je ale úplně jiný případ. Tím jsi jenom ilustroval, že se v céčku dá napsat kód, který se zacyklí.

To je furt ten samy pripad. (pokud mas problem s tim [1..], tak si vezmi ten priklad s
Kód: [Vybrat]
def foo = foo
take(3, [1,2,3,4,foo])

ten ti taky 'konci' bud [1,2,3] nebo ⊥)

Ve striktnim jazyce cokoli v podobe baz(..., ⊥, ...) je ⊥. V non-strict muze a nemusi.

1881
Vývoj / Re:Má Haskell budoucnost?
« kdy: 15. 05. 2016, 18:11:47 »
To je naprosto normalni semantika striktniho jazyka.
Kind of. Céčko třeba žádné nekonečné listy nemá, čili to jeho sémantika není.

Ale, ale.
Kód: [Vybrat]
int foo() { for (;;); }

int bar(a, b) { return a; }

bar(1,foo());
a zase mas ⊥ (jenom tomu proste Ceckar tak nerika, protoze zije v jinem svete)

1882
Vývoj / Re:Má Haskell budoucnost?
« kdy: 15. 05. 2016, 17:59:38 »
Co na tom příkladu není jasné? Jaká smyčka????

Ivan s tim ma problem a tak si mysli, ze je to problem ;)

1883
Vývoj / Re:Má Haskell budoucnost?
« kdy: 15. 05. 2016, 17:58:34 »
(Aby bylo jasno, ja mam linost na haskellu rad. Ale i kdyz se clovek jeste pohybuje na ciste FP uzemi, tak tam rozdily jsou a ne ciste jenom ve prospech lenosti.)

1884
Vývoj / Re:Má Haskell budoucnost?
« kdy: 15. 05. 2016, 17:56:08 »
take(3,[1..])
ma jinou hodnotu podle toho, jaky mas jazyk. Muze to byt [1,2,3] nebo ⊥
Ok, beru. Jistě můžu mít jazyk s libovolně nesmyslnou sémantikou.

To je naprosto normalni semantika striktniho jazyka.

Jaký význam má pojem "nelínost" u pure jazyka? Že se občas zacyklí na něčem, na čem by se zacyklit nemusel?

Spotreba pameti. Dokud nedojde na ⊥, tak se u striktnich jazyku lepe resi pametova narocnost.

1885
Vývoj / Re:Má Haskell budoucnost?
« kdy: 15. 05. 2016, 17:12:11 »
Ne.
Co ne? Není venku slunečno? Souhlasím :)

take(3,[1..])
ma jinou hodnotu podle toho, jaky mas jazyk. Muze to byt [1,2,3] nebo ⊥

1886
Vývoj / Re:Má Haskell budoucnost?
« 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.

1887
Vývoj / Re:Má Haskell budoucnost?
« 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.

1888
Vývoj / Re:Má Haskell budoucnost?
« kdy: 15. 05. 2016, 10:39:20 »
A to je v čem horší než stejný případ v Pascalu, když si pošleš do funkce data, která sis před tím nabořil?
Je to naopak lepší v tom, že potenciálně nabořená místa nutně znáš 


(jinak to, co popisuješ je problém, ale ne side effect. A všude jinde je ten problém horší. Nemluvě o tom strašáku budoucích prasat v haskellu.)

1889
Vývoj / Re:Má Haskell budoucnost?
« kdy: 15. 05. 2016, 10:06:55 »
Ten kus kódu, co jsi pastnul, ti přijde jako funkcionální?

1890
Vývoj / Re:Má Haskell budoucnost?
« kdy: 15. 05. 2016, 09:04:23 »
Už tu zas Ivan s vážnou tváří tvrdí, že je snazší uvažovat o kódu se side effecty?

Stran: 1 ... 124 125 [126] 127 128 ... 177