( viraghj | 2018. 09. 28., p – 09:41 )

Bár már korábban azt hittem, többet nem szólok hozzá, de azért mégis .-)

...és meg is mutattam a cikkben, hogy az int könnyen lekorlátozható egy olyan adatszerkezetre, amiben nincs benne minden int érték (NotZeroInt). Ezáltal az összes bemenetre ad vissza outputot a függvény...

Azt hiszem, még mindig elsikkadt valami. Ahhoz, hogy (pl. egy egészeken, vagy azok részhalmazán értelmezett) "gépi függvény" adott inputra értelmezve legyen (vagyis "rendes" számértéket adjon vissza) 2 dolog szükséges:

1) az input benne legyen az értelmezési tartomány azon leszűkített részében, amin (azt gondoljuk, hogy :-) már totális a függvényünk, tehát biztosan értelmezve van

2) Úgy legyen megírva a függvényt kiszámító kód, hogy ilyen értékekre valóban ki tudjon számolni valami értelmes értéket, futása közben ne léphessen föl semmi kivételes állapot.

Néha az első, néha a második teljesítése a bonyolultabb.

Egy filozófiai kérdés: ha egy (pl. bonyolult rekurziókkal definiált) függvény adott inputra timeout-tal elszáll, akkor ott vajon definiálva van-e?

Például a Fibonacci sorozat rekurzív és nem rekurzív implementációi ugyanazt a függvényt definiálják-e?

A matematikai képlettel megadott függvény és az adott nyelven leprogramozott, a képlettel látszólag ekvivalens kódból álló "gépi függvény" a triviális esetektől eltekintve
- különböző értelmezési tartományú
- különböző értékkészletű és
- sok, még gépi számként pontosan megadható input esetén is eltérő értékeket ad vissza.