Prečo nie je Lisp populárnejší?

Zopper

  • *****
  • 947
    • Zobrazit profil
Re:Prečo nie je Lisp populárnejší?
« Odpověď #75 kdy: 06. 11. 2025, 16:45:43 »
Clovek nema vubec mentalni kapacitu cist prefixove vyrazy. Uz jen takovyhle jednoduchy vyraz da praci. To, ze je to vyhodne pro pocitace je jina vec (lispovsky S-vyrazy).

Priklad:
 ^ * + 5 2 - 6 3 2

coz je

((5+2)*(6-3))^2

Dobrý postřeh. Samozřejmě jsem to hned zkusil. Překvapivě se mi to čte dobře, ani ty závorky nepotřebuju. Nejvíc mě trklo, že to vlastně krásně řeší váhání nad prioritami. A vzhledem k tomu, že se nepovažuji za úplně nejvíc geniálního, tak nevím, co si o tom teď mám myslet.
Ehm, já vím, že to tady bude znít trochu jako rouhání, ale mít sny ve strojovém kódu NENÍ normální. :D


Re:Prečo nie je Lisp populárnejší?
« Odpověď #76 kdy: 06. 11. 2025, 16:51:49 »
Clovek nema vubec mentalni kapacitu cist prefixove vyrazy. Uz jen takovyhle jednoduchy vyraz da praci. To, ze je to vyhodne pro pocitace je jina vec (lispovsky S-vyrazy).

Priklad:
 ^ * + 5 2 - 6 3 2

coz je

((5+2)*(6-3))^2

Dobrý postřeh. Samozřejmě jsem to hned zkusil. Překvapivě se mi to čte dobře, ani ty závorky nepotřebuju. Nejvíc mě trklo, že to vlastně krásně řeší váhání nad prioritami. A vzhledem k tomu, že se nepovažuji za úplně nejvíc geniálního, tak nevím, co si o tom teď mám myslet.
To vám fakt nevěřím. :) Pro mě by bylo zajímavé sledovat zastánce praktického používání prefixové notace, jak to prakticky používá, tj. jak v tom počítá, upravuje výrazy, řeší rovnice...
Znovu opakuji, že významnou část své profesionální i hobby práce jsem dělal za použití pre- nebo postfixové notace (LISP, Forth, Assembler), ale je rozdíl počítat na papíře a jen výsledek zakódovat do počítače.

Kit

  • *****
  • 929
    • Zobrazit profil
    • E-mail
Re:Prečo nie je Lisp populárnejší?
« Odpověď #77 kdy: 06. 11. 2025, 17:13:40 »
Clovek nema vubec mentalni kapacitu cist prefixove vyrazy. Uz jen takovyhle jednoduchy vyraz da praci. To, ze je to vyhodne pro pocitace je jina vec (lispovsky S-vyrazy).

Priklad:
 ^ * + 5 2 - 6 3 2

coz je

((5+2)*(6-3))^2

Dobrý postřeh. Samozřejmě jsem to hned zkusil. Překvapivě se mi to čte dobře, ani ty závorky nepotřebuju. Nejvíc mě trklo, že to vlastně krásně řeší váhání nad prioritami. A vzhledem k tomu, že se nepovažuji za úplně nejvíc geniálního, tak nevím, co si o tom teď mám myslet.
To vám fakt nevěřím. :) Pro mě by bylo zajímavé sledovat zastánce praktického používání prefixové notace, jak to prakticky používá, tj. jak v tom počítá, upravuje výrazy, řeší rovnice...
Znovu opakuji, že významnou část své profesionální i hobby práce jsem dělal za použití pre- nebo postfixové notace (LISP, Forth, Assembler), ale je rozdíl počítat na papíře a jen výsledek zakódovat do počítače.

Volání funkcí je v prefixové notaci. V matematice používáme i postfixovou notaci a nepřipadá nám to divné. Lisp udělal jen to, že vše sjednotil do prefixové notace, aby to bylo jednodušší.
« Poslední změna: 06. 11. 2025, 17:17:06 od Kit »

Wasper

  • ***
  • 232
    • Zobrazit profil
    • E-mail
Re:Prečo nie je Lisp populárnejší?
« Odpověď #78 kdy: 06. 11. 2025, 17:22:39 »
No ale kdyz si tu prefixovou notaci ozavorkuju tak jako v lispu tak uz se to cte dobre ne?
Kód: [Vybrat]
(^ ( * (+ 5 2) (- 6 3)) 2)
Upřímně, vůbec, ale nějak bych takhle jednoduchý výraz zparsovat dal.
Ale dosaďte si tam cokoli složitějšího (třeba relativistické výpočny jsou známy tím, že se jen těžko vejdou na tabuli posluchárny, aby se v cílovém kroku většina termů vykrátila), veškerá přehlednost se naprosto ztrácí.

Asi jako v němčině, ich habe ....... deset řádků košaté rozvinuté věty ... gehabt, a člověk musí celou dobu držet plný kontext, aby se na konci dozvěděl, které sloveso tam je.

BoneFlute

  • *****
  • 2 087
    • Zobrazit profil
Re:Prečo nie je Lisp populárnejší?
« Odpověď #79 kdy: 06. 11. 2025, 17:50:10 »
Clovek nema vubec mentalni kapacitu cist prefixove vyrazy. Uz jen takovyhle jednoduchy vyraz da praci. To, ze je to vyhodne pro pocitace je jina vec (lispovsky S-vyrazy).

Priklad:
 ^ * + 5 2 - 6 3 2

coz je

((5+2)*(6-3))^2

Dobrý postřeh. Samozřejmě jsem to hned zkusil. Překvapivě se mi to čte dobře, ani ty závorky nepotřebuju. Nejvíc mě trklo, že to vlastně krásně řeší váhání nad prioritami. A vzhledem k tomu, že se nepovažuji za úplně nejvíc geniálního, tak nevím, co si o tom teď mám myslet.
To vám fakt nevěřím. :)
Beru na vědomí.

A teď si vemte, že jsem se v té rovnici spletl. Protože jsem četl:
 ^ * + 5 2 - 6 3 2
jako (5 + 2) * (6 - (3 - 2)) ^ 2
A když jsem si tu chybu uvědomil, tak jsem zaujal postoj, že autor té prefixové rovnice to napsal blbě, protože samozřejmě očekávám, že operátor sežere všechny argumenty až po první operátor. Přišlo mi to jasné a pohodlné.

Co z toho vyvodíme?

Pro mě by bylo zajímavé sledovat zastánce praktického používání prefixové notace, jak to prakticky používá, tj. jak v tom počítá, upravuje výrazy, řeší rovnice...
To asi nejsem.

Třeba jsem ale pozoroval, že funkce jako konstrukt mám hodně pod kůží. Když jsem mé paní vysvětloval něco a používal formulace jako "no to máš jako funkci, že...", tak jsem se zarazil, že na mě blbě kouká. A na druhou stranu, řešit (složitější) matematické rovnice není věc, kterou bych dělal každý den. Možná ani jednou za rok ne.

Principielně proti infixové notaci nic nemám.


BoneFlute

  • *****
  • 2 087
    • Zobrazit profil
Re:Prečo nie je Lisp populárnejší?
« Odpověď #80 kdy: 06. 11. 2025, 17:53:04 »
Ehm, já vím, že to tady bude znít trochu jako rouhání, ale mít sny ve strojovém kódu NENÍ normální. :D

Počítám v hlavě tak, že seskupuji objekty: trojůhelníky, čtverce, krychle, kvádry. Třeba desítka jsou dvě krychle a kvádr. Nevím, jestli je to normální, asi možná spíše ne :-)

Wasper

  • ***
  • 232
    • Zobrazit profil
    • E-mail
Re:Prečo nie je Lisp populárnejší?
« Odpověď #81 kdy: 06. 11. 2025, 18:12:05 »
Volání funkcí je v prefixové notaci. V matematice používáme i postfixovou notaci a nepřipadá nám to divné. Lisp udělal jen to, že vše sjednotil do prefixové notace, aby to bylo jednodušší.
Mno, a teď teda řekněte, proč v jazycích, které to umožňují, je taková scháňka po přeťěžování infixových oprátorů, pokud je prefix tak výhodnější.
Troufám si tvrdit, že většina programátorů radši napíše s1 + s2 + s3 nez CONCAT(s1, s2, s3), stejně tak Octonion a = b + c a ne Octonion a = ADD(b, c)

Re:Prečo nie je Lisp populárnejší?
« Odpověď #82 kdy: 06. 11. 2025, 19:05:46 »
Troufám si tvrdit, že většina programátorů radši napíše s1 + s2 + s3 nez CONCAT(s1, s2, s3), stejně tak Octonion a = b + c a ne Octonion a = ADD(b, c)

Troufam si tvrdit, ze ne...
Aspon ne potom co jim nekdo da tech operandu 1000 (nebo proste n) a rekne jim ze to budou delat na 1000 (M) mistech v aplikaci.

Pak se vsichni zacnou schanet po (prefixove notovane) funkci... nebo si ji napisou...
A my si v lispu proste pouzijeme tu samou jako vzdycky pouzivame pro 2 nebo pro 3 "operandy" (divny tomu rikat operandy kdyz jsou to vlastne argumenty funkce)

BoneFlute

  • *****
  • 2 087
    • Zobrazit profil
Re:Prečo nie je Lisp populárnejší?
« Odpověď #83 kdy: 06. 11. 2025, 19:09:50 »
Volání funkcí je v prefixové notaci. V matematice používáme i postfixovou notaci a nepřipadá nám to divné. Lisp udělal jen to, že vše sjednotil do prefixové notace, aby to bylo jednodušší.
Mno, a teď teda řekněte, proč v jazycích, které to umožňují, je taková scháňka po přeťěžování infixových oprátorů, pokud je prefix tak výhodnější.
Troufám si tvrdit, že většina programátorů radši napíše s1 + s2 + s3 nez CONCAT(s1, s2, s3), stejně tak Octonion a = b + c a ne Octonion a = ADD(b, c)

A nemůže to být prostě jen tím, že zvyk?

A opravdu je po tom taková scháňka?

Třeba v Haskellu je možné definovat naprosto zběsilé operátory, jako >>=, <$>, *>, >@>, které jsou automatikcy infixové. A autoři knihoven to všelijak používají, s větším či menším úspěchem stran čitelnosti. Ale neřekl bych, že by po tom byla jakože vysloveně poptávka. Spíše, když maj tu možnost, tak to použijou, protože se jim to víc líbí. A nebo třeba taky ne.

Karmelos

  • *****
  • 1 227
    • Zobrazit profil
    • E-mail
Re:Prečo nie je Lisp populárnejší?
« Odpověď #84 kdy: 06. 11. 2025, 19:14:29 »
Ehm, já vím, že to tady bude znít trochu jako rouhání, ale mít sny ve strojovém kódu NENÍ normální. :D

Počítám v hlavě tak, že seskupuji objekty: trojůhelníky, čtverce, krychle, kvádry. Třeba desítka jsou dvě krychle a kvádr. Nevím, jestli je to normální, asi možná spíše ne :-)

Podle mě mít v hlavě blockout normální není. ale je to roztomilý  ;D
Gréta je nejlepší.

Re:Prečo nie je Lisp populárnejší?
« Odpověď #85 kdy: 06. 11. 2025, 19:39:20 »
Volání funkcí je v prefixové notaci. V matematice používáme i postfixovou notaci a nepřipadá nám to divné. Lisp udělal jen to, že vše sjednotil do prefixové notace, aby to bylo jednodušší.
Jednodušší to je, ale pro počítač, nikoli pro člověka. Nemám problém s převody mezi jednotlivými formami zápisu, stejně jako nemám problém převádět mezi sebou arabská a římská čísla. Ale provádět aritmetické operace v římských číslech bych nedával.

A my si v lispu proste pouzijeme tu samou jako vzdycky pouzivame pro 2 nebo pro 3 "operandy" (divny tomu rikat operandy kdyz jsou to vlastne argumenty funkce)
Tak třeba pro mě to žádná extra-podivná věc nebyla, když jsem se učil LISP, protože po BASICu byl mým druhým jazykem Assembler, který je ve většině případů taky prefixový, a zhruba současně s Pascalem jsem se učil Forth - takže postfix. Ale znova - jedna věc je pouhý zápis, druhá věc je aktivní používání a myšlení. Že dokážu i docela složitý výpočet napsat v Assembleru ještě neznamená, že bych chtěl upravovat výrazy v intencích ADD, MUL, DIV...

Beru na vědomí.

A teď si vemte, že jsem se v té rovnici spletl. Protože jsem četl:
 ^ * + 5 2 - 6 3 2
jako (5 + 2) * (6 - (3 - 2)) ^ 2
A když jsem si tu chybu uvědomil, tak jsem zaujal postoj, že autor té prefixové rovnice to napsal blbě, protože samozřejmě očekávám, že operátor sežere všechny argumenty až po první operátor. Přišlo mi to jasné a pohodlné.

Co z toho vyvodíme?.
Že buď budeme důsledně používat závorky jako v LISPu, nebo operátory s konstantním počtem operandů jako ve Forthu.  ;)

Wasper

  • ***
  • 232
    • Zobrazit profil
    • E-mail
Re:Prečo nie je Lisp populárnejší?
« Odpověď #86 kdy: 06. 11. 2025, 19:52:38 »
A nemůže to být prostě jen tím, že zvyk?
Může, a patrně to tak bude. Ale zase, dostáváme se zpátky k tématu - proč je to tak málo rozšířené. Protože se to zvykem (potažmo to prvně muselo vyhovovat) jen menší části lidí. Částečně to mohou být osobní preference, částečně třída úloh...

Tím neříkám, že je to špatně, naopak. Špatně mi přijdou jen snahy vnucovat prefix notaci "prašivým civilistům" (viz 2-3 stránka cca).

Wasper

  • ***
  • 232
    • Zobrazit profil
    • E-mail
Re:Prečo nie je Lisp populárnejší?
« Odpověď #87 kdy: 06. 11. 2025, 19:57:44 »
Podle mě mít v hlavě blockout normální není. ale je to roztomilý  ;D
Mě to teda normální připadne, a k tomu navíc i zajímavé. Asi tím dost odbíháme od tématu, ale zdánlivě triviální otázka, jak funguje mozek ostatních lidí je ve skutečnosti dost netriviální, a málokdo o tom tuší, že to ostatní mohou mít jinak.
Jen takových pár hintů (vše u zdravých lidí):
Máte "vnitřní hlas"? Jak přesně počítáte do deseti? Jakou metodou sčítáte/násobíte? Co (ne)vidíte ve tmě, když zavřete oči?

Kit

  • *****
  • 929
    • Zobrazit profil
    • E-mail
Re:Prečo nie je Lisp populárnejší?
« Odpověď #88 kdy: 06. 11. 2025, 20:07:58 »
Volání funkcí je v prefixové notaci. V matematice používáme i postfixovou notaci a nepřipadá nám to divné. Lisp udělal jen to, že vše sjednotil do prefixové notace, aby to bylo jednodušší.
Mno, a teď teda řekněte, proč v jazycích, které to umožňují, je taková scháňka po přeťěžování infixových oprátorů, pokud je prefix tak výhodnější.
Troufám si tvrdit, že většina programátorů radši napíše s1 + s2 + s3 nez CONCAT(s1, s2, s3), stejně tak Octonion a = b + c a ne Octonion a = ADD(b, c)

Obávám se, že taková sháňka po přetěžování infixových operátorů nebude. Zkusil jsem si je v Pythonu a zjistil jsem, že se to hůř čte. Chápu + pro spojování řetězců, tam se to hodí a CONCAT(s1, s2, s3) mi také není moc sympatický, ale zápis
Kód: [Vybrat]
(Octonion a (+ b c)) mi přřipadá docela hezký.

Re:Prečo nie je Lisp populárnejší?
« Odpověď #89 kdy: 06. 11. 2025, 21:18:57 »
Znovu opakuji, že významnou část své profesionální i hobby práce jsem dělal za použití pre- nebo postfixové notace (LISP, Forth, Assembler), ale je rozdíl počítat na papíře a jen výsledek zakódovat do počítače.

Na HPčkách se postfix používá běžně a dělalo s tím několik generací účetních atd., bylo to dost populární (a navíc i ekonomičtější, míň keystroků)