Programozás — Wolfram nyelv

Facebook
Nyomtatás

Arra a kérdésre, hogy a matematikában vagy a programozásban kell-e pontosabbnak lennünk, valószínűleg többen mondanák azt, hogy az elsőben, mint a másodikban, és talán ez is a gyakoribb eset. Most mégis mutatunk két (egymáshoz közeli) példát az ellenkezőjére.

Ha adott az \( A\) és a \( B\) nem üres halmaz, és az \( f\colon A\to B\) függvény, továbbá a függvény értelmezési tartományának \( C\subset A\) részhalmaza, akkor szükségünk lehet a \( C\) halmaz elemeinek képeiből álló halmazra. A matematikus tehát bevezeti az \( f(C):=\{f(x)\vert x\in C\}\) jelölést, mit sem törődve azzal a ténnyel, hogy az \( f\) függvény \( A\) elemein, és nem \( A\) részhalmazain volt értelmezve! Ha itt pontosabbak akarnánk lenni (bár valóban nem okoz igazán gondot ez a pongyolaság), akkor az \( f\) függvény által generált, \( A\)részhalmazait \( B\) részhalmazaiba képező függvényről van szó, amit a halmaz (angolul set) szó kezdőbetűjével tehetünk nyomatékosabbá, például így: \( Sf(C):=\left\{f(x)\mid x\in C\right\}\) ( \( C\subset A\)). Kézenfekvő, hogy a programnyelvek esetén világosan meg kell különböztetni az \( f\) és az \( Sf\) függvényt, de valahogyan a kapcsolatukat sem árt számon tartani. A Wolfram nyelv (leánykori nevén Mathematica, hogy ne csak Wolfram Alpha és Wolfram Science létezzék reklámhordozóként) bevezette a Map ,,kétváltozós” függvényt (ha tetszik: operátort) erre a célra. Ha tehát adott például a \( C:=\{a,b,c\}\) halmaz és az \( f\) függvény, akkor a \( C\) halmaz képe ennél a függvénynél, vagyis az \( \{f[a],f[b],f[c]\}\) halmaz így számolható: \( \textbf{Map}[f,\{a,b,c\}]\). (Megjegyzendő, hogy egy idő után a Maple fejlesztői is kénytelenek voltak bevezetni ezt a függvényt.)

Nézzünk egy másik példát! Ha most \( f\) olyan függvény, amely a sík pontjainak koordinátáihoz rendel valamit, akkor értékét az épeszű így számolja: \( f(x,y)\). A furmányos viszont természetesen így: \( f\left(\dbinom{x}{y}\right)\), hiszen függvényünk kétdimenziós vektorokhoz rendel valamit, nem számpárokhoz! (Aki teheti, gondoljon még arra is, hogy TeX-ben hány karakter kell, hogy ehhez a szép alakhoz eljussunk!) Amikor erről mégis szó esik, például analízisben, akkor eleinte az az ember érzése, hogy folyamatosan azonosítunk mindent önmagával, pedig tényleg két különböző fogalomról van szó. A Wolfram-nyelv erre a problémára a következő megoldást kínálja: Ha adott az \( \{x,y\}\) vektor, és szeretnénk, ha komponensei az \( f\) kétváltozós függvény argumentumaiként szerepeljenek, akkor ezt kell írnunk: \( \textbf{Apply}[f,\{x,y\}]\), az eredmény pedig \( f[x,y]\) leend.

A figyelmes Olvasó észrevehette, hogy egyszer halmazt, egyszer meg vektort mondtam. Ha a Wolfram nyelv értelmében pontos akartam volna lenni, akkor mindkét esetben listát kellett volna mondanom, ugyanis ez az ott használt alapvető adatszerkezet.

A programnyelv alaposabb tanulmányozása közben kiderül, hogy a fent bevezetett két operátor elképesztően hasznos eszköznek bizonyul. Lásd erről programozóknak vagy a közönséges halandóknak szóló bevezetőket.

TJ

Megjegyzések:

A Wolfram nyelv történetéről 2016. szeptemberi számunkban Lóczi Lajos írt: https://ematlap.hu/konyvespolc-ajanlo/a-wolfram-nyelv-torteneterol/.

A TeX programozási nyelv keletkezéséről mostani számunkban olvashatnak Kovács Zoltán cikkében.

Fényképünkön Wolfram 2008-ban, forrása: https://hu.wikipedia.org/wiki/Stephen_Wolfram (Stephen Wolfram’s PR team/Stephen Faust. Received via email from Stephen Wolfram’s staff. Publicity photo of Stephen Wolfram).

A rovat ajánlott cikkei
Zsák Zoltán gépészmérnök egy új geo­met­ri­ai alakzatot, sőt alakzatcsaládot mutat be, amelyeket excentoidoknak nevezett el Bár az ötlet az ipari robotokat alkalmazó automata rendszerektől indult el, de ezek a szép térformák helyet kap­hat­nak a szobrászatban, az épí­té­szet­ben vagy ékszerek tervezésénél is.
Naponta százával bombáz bennünket hir­de­té­sek­kel és hírekkel a média, különösen sok érkezik az internetes közösségi platformokon. Jelentős részük valódinak tűnik, de nem az. Hogyan tudjuk kiszűrni, mi álhír és mi nem?
XIV. Leó pápa matematikából szerezte első diplomáját, a nemrég megválasztott román elnök pedig kétszer is maximális pontszámmal aranyérmes lett a Nemzetközi Matematikai Diákolimpián, és karrierje kutató matematikusként indult. Mi lehet még azokból, akik matematikus diplomát szereznek? Simon Péter és Molontay Roland ad néhány ötletet... (Fotó: Matematikus állás­hir­de­té­sek a Profession.hu portálon.)
Az Érintő 2025. márciusi számában Maga Balázs Simon Péterrel írt közös cikket a mesterséges neurális hálók gépi látásáról. Ezúttal egy másik, rendkívül izgalmas alkalmazási területet, azt, hogyan képes a mesterséges intelligencia szövegek megértésére és előállítására, vagyis a nagy nyelvi modellek létrejöttét mutatja be közösen Virág Fausztin Asztrikkal. A további szerzőtársakról az Utószóban olvashatnak...
A Rubik’s Gridlock (vagy Mondrian Blocks) egy régi eszme: „a játékok bevonása a tanulásba” megvalósítása egy új eszközzel, ami feleleveníti Dienes Zoltán és Varga Tamás XX. századi kísérleteit. Ez a modern, kézzelfogható, de később digitálisan is elérhető eszköz − egyelőre csak a kezdeti szakaszban, az óvodában és az alsó tagozaton − új lendületet adhat a matematika tanulásához. Vancsó Ödön, Kerekes Judit és Kökényesi Imre cikke számol be a apasztalatokról.
Hírlevél feliratkozás
Az reCAPTCHA V3 használatához hozzá kell adnod az API-kulcsot, és be kell fejezned a telepítési folyamatot a Vezérlőpult > Elementor > Beállítások > Integrációk> reCAPTCHA V3 menüpontban.