ALMAD: já Smalltalk neznám :-) představa, že i operátor je objekt (a ne metoda objektu) jsem uvedl jako příklad exotické abstrakce, která přesahuje mojí každodenní praxi - ale asi by mě bavilo navrhovat jazyk, ve kterém by to takto bylo.
Spíše jsem zatím uvažoval o jazyce (skriptovacím, dynamicky typovaném), ve kterém by základní instrukce (jako IF a FOR) byly jenom speciální operátory, a bylo je tedy možné použít i uvnitř expressions vracejících hodnotu - víceméně, inspiroval mě céčkovský divno-operátor (ex?a:b), a napadlo mi, že by mohl velmi jednoduše existovat operátor rekurze: např. @( .... $ ) - zavináč by definoval začátek rekurze a dolar by v tomto bodě zavolal nejbližší vnější rekurzi (nevím, jestli to je to samé, jako lambda funkce)
např. součet čísel 1 až n by se v mých "rozšířených C výrazech" zapsal takto: (samozřejmě - čárka je cool operátor pro zmatení nepřítele, ale fakt bych nerad, aby to byl ještě navíc objekt :-)
(i=0),@(i<n?++i+$:i)
což by znamenalo např. n=4 postupný návrat hodnot 1+2+3+4
(vlastně je to rozšíření možnosti anonymní funkce, kterou znají C11 i C++11 ještě o rekurzi, ale to je tady offtopic - to patří spíš sem: http://www.nyx.cz/index.php/discussion/14112 )
(už jsem zdůraznil, že můj vztah k matematice je hodně BDSM, a to konkrétně sadistický: baví mě jí týrat - zatímco na VŠ se od studentů vyžadovala ve vztahu k matematice spíše přísná submisivita :-) myslím, že něco podobného kdysi uměly programovatelné kalkulačky, ale já se dostal k normálním mikropočítačům dřív, než jsem se s nimi naučil...)