Tietojenkäsittelytieteen taustalla olevana olin hyvin hämmentynyt ensimmäisellä kerralla, kun kohtasin matematiikan ihmisiä, jotka väittivät, ettei tensori ole matriisi. Koska molemmat ovat selvästi moniulotteisia taulukoita. Mutta sitten tajusin... Matemaatikot käyttävät aina päässään vahvasti tyypitettyjä kieliä!
Tietojenkäsittelytieteilijän rakenteessa funktiot, rajapinnat ja rajoitteet ovat kaikki selvästi eroteltuja ja toisiinsa muunnettavissa. Tensori on matriisi, jota käsittelet kuin tensoria. Voit tehdä sekoituksia, luokka on kaikkien neljän nippu, mutta se ei ole pakollista.
Kun he sanovat, etteivät vektorit ole lukulistoja, se johtuu siitä, että he ovat kouluttaneet itsensä tyypintarkastajiksi innokkaille vahvasti tyypitettyjen logiikkakielten arviointiin. Matemaatikot pyörittävät päässään jotain, joka on käytännössä taikuuden oppima tyyppitarkistus.
CS-ihmiset käyttävät enimmäkseen lisppiä ja/tai C:tä henkisesti, riippuen siitä, haluammeko heidän olevan tulkki vai tietokone. Jos pelaamme vahvasti tyypitetyn mentaalisen simulaattorin, se asetetaan päälle. Jopa Haskell erottaa tyyppimääritykset toteutuksesta.
Mutta matematiikka tehdään pelkillä kirjainmerkinnöillä! He tekevät kaiken vahvasti tyypitetyillä makroilla! Se on kuin Hindley–Milner-tyyppien raja-tapaus, jos olisi tehty spekulatiivinen laajennus parempien puristusten löytämiseksi. Tämä mahdollistaa matemaatikoille optimoidun ohjelmien kokoamisen abstraktisti.
Nyt kun teen enemmän oikeaa matematiikkaa, näen tämän lähestymistavan voiman. Mutta mielestäni tietojenkäsittelytieteen lähestymistavan voimaa ei arvosteta matematiikan keskuudessa. Koska CS:n viisaus on, että tensori on matriisi, mutta matriisi ei ole tensori. Muuttujat ovat sitä, mihin voit heittää niitä.
Matemaatikot tuntevat castit, mutta kutsuvat niitä hassuilla nimillä, kuten "morfismeilla". Ja he myöntävät pakon alla, että jos sinulla on sopiva loitsu, voit käyttää vektoria vastaavan ulottuvuuden kiertona.
Mutta he sanovat, ettet käytä vektoria kiertona, vaan olet johtanut bivektorin bla bla bla bla. Tämä pitää paikkansa, jos olet Prologin super HM -tyyppitarkkailija. Se ei pidä paikkaansa, jos olet kääntäjä, interpetteri tai tietokone.
Joka tapauksessa otan edelleen tappeluita matematiikan ihmisten kanssa sen takia, koska on niin naurettavaa kieltää, että ankka-tyypitys toimii, mutta he ovat oikeassa, että se vaatii silti tyypin yhdistämistä.
@St_Rev Ja ei, tensori on matriisin alatyyppi, ei toisin päin. Matriisi on yleisempi objekti, tensorit noudattavat enemmän rajoitteita.
@SokobanHero Koska monilineaarinen kuvaus voidaan aina toteuttaa matriisina (teknisesti hypermatriisi, koska ihmiset ilmeisesti käyttävät matriisia tarkoittamaan vain rank-2 n-dim -taulukkoa) ja päinvastoin jossain avaruudessa, mielestäni on yhtä järkevää mennä kumpaankin suuntaan.
20,74K