Funktionaalista?

UusiaTuulia

Mietin tuota funktionaalista koodausta, voiko tuommoisella tavalla koodailla mitään isompaa hyödyllistä softaa, onko esimerkkejä? Mietin esim. ihan vaikka Linuxissa toimiva Nano-editori, eikö tuommoisenkin tekeminen olisi ihan pirun haasteellinen homma koodailla funktionaalisella tavalla?

D-kielellä toteutettu esimerkki, eikös tämä ole funktionaalisen tavan mukaisesti koodattu?

....pisteet siksi kun tämä kadottaa sisennykset.

module main;
import std.stdio;
import std.string;

immutable struct Person {
....string name;
....int age;
}

void sayHello (Person aPerson) {
....writefln ("Terve %s, sun ikä on %d", aPerson.name, aPerson.age);
}

pure Person modifyAge (Person aPerson, const int aAge) {
....if (aAge < 18) {
........throw new Exception (format ("Ikä %d on alle 18", aAge));
....}
....else if (aAge > 130) {
........throw new Exception (format ("Ikä %d on liian vanha", aAge));
....}

.... return Person (aPerson.name, aAge);
}

pure Person modifyName (Person aPerson, const string aName) {
....return Person (aName, aPerson.age);
}

void main (string[] args) {
.... try {
........auto p1 = Person("Timo", 44);
........p1.sayHello;

........auto p2 = p1.modifyAge = 50;
........p2.sayHello;

........auto p3 = p2.modifyName = "Kari";
........p3.sayHello;

........auto p4 = p3.modifyAge = 12;
........p4.sayHello;
....}
....catch (Exception e) {
........ writeln (e.msg);
....}
}

45

585

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Kyllä funktionaalisesti voi tehdä hyvin laajoja ohjelmia. Itseasiassa sillä tavalla saa pidettyä isompia juttuja hallittavina.

      Tuossa koodissa nyt vähän semmoinen kummallisuus kun luot henkilön ja sitten muutat sen tilaa. Pitäisi olla se, että luot henkilön ja luonnin yhteydessä se saa nimen ja iän.

      Ne sijoitusoperaattorit eivät oikein kuulu funktionaaliseen ohjelmointiin.

      • UusiaTuulia

        En muuta tuossa tilaa. Kyse on immutable struct -rakenteesta, jonka sisältö ei voi muuttua luonnin jälkeen, tuossa luodaan aina kopio henkilöstä p1 p2 p3 jne.. jotka saa uudet arvot. Itse asiassa ainut tilallinen 'muuttuja' on main-funktion args -parametri tuossa.

        Tässä käydään ihan samoja asioita läpi.
        https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-1-1f15e387e536

        Tämä funktionaalinen koodaus on vähän samaa kuin XSL-tiedoston tekeminen, etenkin 2007-11 tuli väännettyä aika paljon ja kirosin silloin tätä samaa kun siinä ei ole oikeita muuttujia vaan "vakioita" ja kaikki aisat pitää tehdä rekursiivisesti.

        Mutta tässä yritän vain hahmottaa tätä asiaa mistä tässä on kyse.


      • UusiaTuulia

        Tokihan tuon voisi tehdä
        auto p2 = modifyAge(p1, 50);

        No on siinä siltikin yksi sijoitusoperaattori, mutta tuossa ap. koodissa mielestäni on luettavampaa tuo koodin esittäminen noin.


      • UusiaTuulia kirjoitti:

        Tokihan tuon voisi tehdä
        auto p2 = modifyAge(p1, 50);

        No on siinä siltikin yksi sijoitusoperaattori, mutta tuossa ap. koodissa mielestäni on luettavampaa tuo koodin esittäminen noin.

        Tuo pitäisi mennä niin, että Person instanssi saa syntymäajan ja nimen constructorissa.

        Sitten siltä kysytään se ikä koska kello tiedetään.

        Poistaa sitten kaiken turhanpäiväisen ehtohässäkän, poikkeukset yms. pois.


      • UusiaTuulia

        auto p1 = Person("Timo", 44);

        Kello tiedetään? Menee kyllä aika vaikeeksi koodaus tässä funktionaalisuudessa, yksinkertaisista asioista tehdään monimutkaisia. Toisaalta ymmärrän tässä sen pointin että monisäikeistetyssä koodissa on varmasti etua kun ei ole muuttuvia tiloja, mutta jokaista asiaa ei tarvi säikeistää.


      • UusiaTuulia kirjoitti:

        auto p1 = Person("Timo", 44);

        Kello tiedetään? Menee kyllä aika vaikeeksi koodaus tässä funktionaalisuudessa, yksinkertaisista asioista tehdään monimutkaisia. Toisaalta ymmärrän tässä sen pointin että monisäikeistetyssä koodissa on varmasti etua kun ei ole muuttuvia tiloja, mutta jokaista asiaa ei tarvi säikeistää.

        Tuo ei edes ole funktionaalisuutta vaan perus olio-ohjelmointia.

        Tietokoneessa on kello, se voidaan lukea niin palvelimessa kuin käyttöliittymässä. Person kun luodaan, sille annetaan syntymäaika ja ikä voidaan laskea siitä.

        Yrität nyt väkisin jotenkin rakentaa viritelmiä millä muuttaisit tilaa kloonaamalla luotua instanssia vaikka tarkoitus on, että tilaa ei muuteta.


      • UusiaTuulia

        Miten sinä toteuttaisit tämän ei-oliomaisesti?

        Mutta vaikka annetaan kellonaika, sekin voi olla väärin inhimillisen virheen johdosta kun tiedot on syötetty. Tai sitten vaikka nimi on muuttunut, jos Kari onkin tehnyt sukupuolen vaihdoksen ja on nyt nimeltään Kaarina.

        Totta kait asioita pitää voida muuttaa!? Se on suurin ihmetyksen aiheeni tässä koko funktionaalisessa jutussa vai olenko ymmärtänyt väärin? Miten tässä funktionaalisuudessa sitten muutetaan asioita?


      • UusiaTuulia kirjoitti:

        Miten sinä toteuttaisit tämän ei-oliomaisesti?

        Mutta vaikka annetaan kellonaika, sekin voi olla väärin inhimillisen virheen johdosta kun tiedot on syötetty. Tai sitten vaikka nimi on muuttunut, jos Kari onkin tehnyt sukupuolen vaihdoksen ja on nyt nimeltään Kaarina.

        Totta kait asioita pitää voida muuttaa!? Se on suurin ihmetyksen aiheeni tässä koko funktionaalisessa jutussa vai olenko ymmärtänyt väärin? Miten tässä funktionaalisuudessa sitten muutetaan asioita?

        Siis tuo nyt on ei-oliomainen. Funktionaalisuutta tuossa ei edes oikein tarvitse.

        Minä tekisin constructorin joka ottaa vastaan syntymäajan ja nimen. Sitten metodit age() ja name() mitkä palauttaa nimen ja iän.

        "Mutta vaikka annetaan kellonaika, sekin voi olla väärin inhimillisen virheen johdosta kun tiedot on syötetty. Tai sitten vaikka nimi on muuttunut, jos Kari onkin tehnyt sukupuolen vaihdoksen ja on nyt nimeltään Kaarina."

        Sitä voi esim. tehdä funktion mikä ottaa syötteeksi vanhan tilan ja palauttaa uuden korvaamaan vanhaa.

        Mutta esimerkki on kovin huono, kun tuollainen on datan persistointiasia ja liittyisi ennemminkin API suunnitteluun. Siihen voisi ottaa esimerkiksi tämän lähtökohdaksi: https://en.wikipedia.org/wiki/Create,_read,_update_and_delete

        "Totta kait asioita pitää voida muuttaa!? Se on suurin ihmetyksen aiheeni tässä koko funktionaalisessa jutussa vai olenko ymmärtänyt väärin? Miten tässä funktionaalisuudessa sitten muutetaan asioita?"

        tila <- muutaTila(tila)

        Käytännössä ohjelmissa se paikka missä on tila, on se joku tietokanta josta asioita muutellaan kyselyillä ja käyttöliittymissä voi olla säiliöitä joiden sisältö vastaa kannassa olevaa tietoa ja sisältää käyttöliittymäpuolella keskitetyn tilan tallennuksen.

        Sitten kaikki muutokset ja tiedon lukemiset funktioina. Olennaista on se että niitä erilaisia tiloja ei kylvetä ympäri koodia bugeja aiheuttamaan vaan pidetään mahdollisimman pitkälle tilattomana.


      • UusiaTuulia

        En vaan ymmärrä tätä?

        "tila <- muutaTila(tila)"
        "Käytännössä ohjelmissa se paikka missä on tila"
        "Olennaista on se että niitä erilaisia tiloja ei kylvetä ympäri koodia bugeja aiheuttamaan"

        Pitäähän tilalla olla jokin viite mitä se koskee, ettei se ole vain joku "tila", kuten tässä esimerkissä vaikka henkilön X nimi ja siten osaa sen nimen kantaankin päivittää oikealle henkilölle.

        Sovellus.uusiNimi <- muutaNimi(vanhaNimi) // Kenen nimi?

        Ja miksi sovelluksessa pitäisi olla jokin tietty paikka henkilön nimelle, paitsi juu, eli jos jossakin lomakkeella on henkilön tiedot ja siinä on tämä henkilön nimi, sitäkö tuossa ajetaan takaa?

        Ei jokolista, on tämä niin nurinkurista touhua =D


      • UusiaTuulia kirjoitti:

        En vaan ymmärrä tätä?

        "tila <- muutaTila(tila)"
        "Käytännössä ohjelmissa se paikka missä on tila"
        "Olennaista on se että niitä erilaisia tiloja ei kylvetä ympäri koodia bugeja aiheuttamaan"

        Pitäähän tilalla olla jokin viite mitä se koskee, ettei se ole vain joku "tila", kuten tässä esimerkissä vaikka henkilön X nimi ja siten osaa sen nimen kantaankin päivittää oikealle henkilölle.

        Sovellus.uusiNimi <- muutaNimi(vanhaNimi) // Kenen nimi?

        Ja miksi sovelluksessa pitäisi olla jokin tietty paikka henkilön nimelle, paitsi juu, eli jos jossakin lomakkeella on henkilön tiedot ja siinä on tämä henkilön nimi, sitäkö tuossa ajetaan takaa?

        Ei jokolista, on tämä niin nurinkurista touhua =D

        "En vaan ymmärrä tätä?"

        Tilattomuudesta kouluesimerkki olisi vaikka HTTP protokolla.

        Siellä on ne GET, HEAD, POST, PUT, DELETE jne. mutta itse protokollalla ei ole mitään tilaa. Sieltä tulee palvelimelta joku vastaus kyselyyn tai voidaan pyytää poistamaan jotain mutta toiminta ei edellytä mitään tilojen laittamista yhtään mihinkään.

        "Pitäähän tilalla olla jokin viite mitä se koskee, ettei se ole vain joku "tila", kuten tässä esimerkissä vaikka henkilön X nimi ja siten osaa sen nimen kantaankin päivittää oikealle henkilölle."

        Se tila voi olla vaikka tietokannan taulu, tai jos tekee käyttöliittymää niin voi olla vaikka serialisoitu objekti mikä sisältää kaiken ja sen voi antaa funktiolle syötteeksi ja funktio palauttaa uuden tilan.

        Se koodi menee väistämättä siistiksi kun ainoan paikan mihin laitat sen sijoituslauseen on se konstruktori sillä luokalla missä alustetaan olion kun se luodaan, ja kun se on luotu niin ei niitä tarvitse muutella.

        Olisi varmaan helpompaa opetella käyttämällä kieltä joka ohjaa siistiin käytäntöön. Esim. Scheme tai Haskell.


      • Hevonvitun-sönkötystä
        M-Kar kirjoitti:

        "En vaan ymmärrä tätä?"

        Tilattomuudesta kouluesimerkki olisi vaikka HTTP protokolla.

        Siellä on ne GET, HEAD, POST, PUT, DELETE jne. mutta itse protokollalla ei ole mitään tilaa. Sieltä tulee palvelimelta joku vastaus kyselyyn tai voidaan pyytää poistamaan jotain mutta toiminta ei edellytä mitään tilojen laittamista yhtään mihinkään.

        "Pitäähän tilalla olla jokin viite mitä se koskee, ettei se ole vain joku "tila", kuten tässä esimerkissä vaikka henkilön X nimi ja siten osaa sen nimen kantaankin päivittää oikealle henkilölle."

        Se tila voi olla vaikka tietokannan taulu, tai jos tekee käyttöliittymää niin voi olla vaikka serialisoitu objekti mikä sisältää kaiken ja sen voi antaa funktiolle syötteeksi ja funktio palauttaa uuden tilan.

        Se koodi menee väistämättä siistiksi kun ainoan paikan mihin laitat sen sijoituslauseen on se konstruktori sillä luokalla missä alustetaan olion kun se luodaan, ja kun se on luotu niin ei niitä tarvitse muutella.

        Olisi varmaan helpompaa opetella käyttämällä kieltä joka ohjaa siistiin käytäntöön. Esim. Scheme tai Haskell.

        Tässä on monta viestiä M-Karilta, jotka olisi saanut jäädä kirjoittamatta, ihan sen takia että sisältö on sekavaa hourimista asiasta josta ei ymmärrä mitään.


      • Hevonvitun-sönkötystä kirjoitti:

        Tässä on monta viestiä M-Karilta, jotka olisi saanut jäädä kirjoittamatta, ihan sen takia että sisältö on sekavaa hourimista asiasta josta ei ymmärrä mitään.

        No opiskele sitten.


      • Hevonvitun-sönkötystä
        M-Kar kirjoitti:

        No opiskele sitten.

        Taas sinä todistit kykysi ymmärtää kirjoitettua tekstiä, järjen köyhyyttä, ei tuota käsittämätöntä sönkötystä muuten ei voida selittää.


      • Hevonvitun-sönkötystä kirjoitti:

        Taas sinä todistit kykysi ymmärtää kirjoitettua tekstiä, järjen köyhyyttä, ei tuota käsittämätöntä sönkötystä muuten ei voida selittää.

        Siis sinä et ymmärtänyt.

        Et ymmärtänyt mitä kirjoitin. On täysi syy olettaa että et tunne ohjelmointia.


      • Hevonvitun-sönkötystä
        M-Kar kirjoitti:

        Siis sinä et ymmärtänyt.

        Et ymmärtänyt mitä kirjoitin. On täysi syy olettaa että et tunne ohjelmointia.

        Sinä saat olettaa ihan mitä haluat, mutta noilla kirjoituksissasi ei ole mitään tekemistä ohjelmoinnin kanssa, ne on puhtaasti kylähullun hourimista asiasta josta ei ymmärrä yhtään mitään, täyttä paskaa.


      • Hevonvitun-sönkötystä kirjoitti:

        Sinä saat olettaa ihan mitä haluat, mutta noilla kirjoituksissasi ei ole mitään tekemistä ohjelmoinnin kanssa, ne on puhtaasti kylähullun hourimista asiasta josta ei ymmärrä yhtään mitään, täyttä paskaa.

        "Sinä saat olettaa ihan mitä haluat, mutta noilla kirjoituksissasi ei ole mitään tekemistä ohjelmoinnin kanssa, ne on puhtaasti kylähullun hourimista asiasta josta ei ymmärrä yhtään mitään, täyttä paskaa."

        Puhuin ohjelmoinnista jonka minä osaan hyvin.

        Se että sinä et ymmärrä ohjelmointia, on sinun ongelmasi. Opiskele niin ehkä joskus opit.


      • Turbo-Urpo1
        M-Kar kirjoitti:

        "Sinä saat olettaa ihan mitä haluat, mutta noilla kirjoituksissasi ei ole mitään tekemistä ohjelmoinnin kanssa, ne on puhtaasti kylähullun hourimista asiasta josta ei ymmärrä yhtään mitään, täyttä paskaa."

        Puhuin ohjelmoinnista jonka minä osaan hyvin.

        Se että sinä et ymmärrä ohjelmointia, on sinun ongelmasi. Opiskele niin ehkä joskus opit.

        On sellainen sanonta että:
        — Kolme kertaa kun valehtelee niin uskoo itsekin.

        ja ihan valehtelematta yhtään:
        — Hulluja on joka paikassa - mielisairaalassakin.


      • Hevonvitun-sönkötystä
        M-Kar kirjoitti:

        "Sinä saat olettaa ihan mitä haluat, mutta noilla kirjoituksissasi ei ole mitään tekemistä ohjelmoinnin kanssa, ne on puhtaasti kylähullun hourimista asiasta josta ei ymmärrä yhtään mitään, täyttä paskaa."

        Puhuin ohjelmoinnista jonka minä osaan hyvin.

        Se että sinä et ymmärrä ohjelmointia, on sinun ongelmasi. Opiskele niin ehkä joskus opit.

        "Puhuin ohjelmoinnista jonka minä osaan hyvin."

        Et ole ikinään osannut, etkä tule ikinään oppimaan, olet sinä sen verra tyhmä.


      • Hevonvitun-sönkötystä kirjoitti:

        "Puhuin ohjelmoinnista jonka minä osaan hyvin."

        Et ole ikinään osannut, etkä tule ikinään oppimaan, olet sinä sen verra tyhmä.

        Tietysti osaan ja osannut pitkään.

        Mutta sinähän et edes ymmärtänyt kirjoittamaani viestiä että kyse on siitä, että sinä et osaa.

        Kyllä minä sen huomaan että olet tyhmä.


      • top.rolli
        M-Kar kirjoitti:

        Tietysti osaan ja osannut pitkään.

        Mutta sinähän et edes ymmärtänyt kirjoittamaani viestiä että kyse on siitä, että sinä et osaa.

        Kyllä minä sen huomaan että olet tyhmä.

        Sinä oletkin sellainen huomaaja, Sammakoista ennustus sopisi sinulle hyvin, tarkkailemalla sammakoita tietäisit kuukausia ennen tulevan kysymyksen täällä, jolloin sinulle jäisi aikaa tutustua asiaan ennakolta, no enpä tiedä luuserit eivät alusta vastauksiaan, laiskoja kun ovat.


      • huomion-arvoista
        M-Kar kirjoitti:

        Tietysti osaan ja osannut pitkään.

        Mutta sinähän et edes ymmärtänyt kirjoittamaani viestiä että kyse on siitä, että sinä et osaa.

        Kyllä minä sen huomaan että olet tyhmä.

        M-Kar lueppa tuo uutinen -> Miehet näyttivät lapsille jalkapallokentän laidalla pornoa – hovioikeus tuomitsi lapsen seksuaalisesta hyväksikäytöstä
        https://www.savonsanomat.fi/kotimaa/Miehet-näyttivät-lapsille-jalkapallokentän-laidalla-pornoa-–-hovioikeus-tuomitsi-lapsen-seksuaalisesta-hyväksikäytöstä/1307877


    • UusiaTuulia

      Asiasta toiseen, onko joku koodaillut VSCode-editorilla? Nykyään siinä pomppii rivien väliin turhia import-viestejä? "no noticable effect for importing this".

      Toivottavasti nuo sais päältä pois, pilaavat taas hyvän editorin ihan turhilla jutuilla, eivät tekisi tästä liian isoa hässäkkää, mikä on Microsoftin vika yleensä sovelluksissa.

      • Käytän sitä. Ihan kiva kun työkalu kertoo turhuuksista, kuten tarpeettomista importeista.


      • Turbo-Urpo

      • UusiaTuulia

        Haha =D


      • UusiaTuulia
        UusiaTuulia kirjoitti:

        Haha =D

        Isommissa projekteissa jos koodi jaotellaan alikansioihin niin tuo ensimmäinen module on pakollinen, esim module ali.hakemisto


      • UusiaTuulia
        M-Kar kirjoitti:

        Käytän sitä. Ihan kiva kun työkalu kertoo turhuuksista, kuten tarpeettomista importeista.

        Muuten tuo ominaisuus ei haittaisi, mutta koodirivit hyppelee silmissä, saisi olla eri tavalla toteutettu.


      • UusiaTuulia kirjoitti:

        Muuten tuo ominaisuus ei haittaisi, mutta koodirivit hyppelee silmissä, saisi olla eri tavalla toteutettu.

        Minulla ei ole tuollaista koodirivien hyppelyä.


      • valheen_jäljet
        M-Kar kirjoitti:

        Minulla ei ole tuollaista koodirivien hyppelyä.

        Mitä sinä niistä ymmärtäisit vaikka oliskiin.


    • koodia.optimoitava

      Kaikki olio-ohjelmoijat olisi vietävä saunan taakse. Olio-ohjelmointi = paskaa turvonnutta koodia. Koodia ei pidä monistaa kuin sen verran että saadaan CPU:n kaikki ytimet käyttöön.

      Assembler pitäisi ottaa peruskouluun ruotsin kielen tilalle. Assemblerin osaamisesta olisi nuorisolle enemmän hyötyä työelämässä. Uskontotunneilla puolestaan olisi raamatun sijaan opetettava lapsille tietokoneen toimintaa. Esimerkiksi Haikalan Käyttöjärjestelmät ISBN 951-762-837-4 olisi sopivaa oppimateriaalia ala-asteikäisille tenaville.

      • UusiaTuulia

        Jossakin youtube pätkässä oli maininta että jos olio-ohjelmoinnissa haluat banaanin, saat samalla gorillan ja vielä viidakon päälle. Näinhän se menee jos asiat ajatellaan väärin päin. Bananin pitäisi olla ylimmällä tasolla, korkeintaan hedelmä ylempänä ja se gorilla ja viidakko ihan alimpana, niin eipä tulekkaan banaanin mukana enään gorillaa ja viidakkoa.


      • Olio-ohjelmointi on lähinnä kielessä työkalua millä voi vähän fiksummin scopettaa asioita. Joissakin kielissä toki turhia ominaisuuksia mutta ei tuossa ole kyse mistään koodin turpoamisesta. Helposti vähentää sitä koodin turvotusta.

        "Assembler pitäisi ottaa peruskouluun ruotsin kielen tilalle."

        Sehän se vasta turvottaakin koodia.


      • Sivustaseurannut
        M-Kar kirjoitti:

        Olio-ohjelmointi on lähinnä kielessä työkalua millä voi vähän fiksummin scopettaa asioita. Joissakin kielissä toki turhia ominaisuuksia mutta ei tuossa ole kyse mistään koodin turpoamisesta. Helposti vähentää sitä koodin turvotusta.

        "Assembler pitäisi ottaa peruskouluun ruotsin kielen tilalle."

        Sehän se vasta turvottaakin koodia.

        Patologinen valehtelija sanoo juuri ne asiat, jotka haluatkin kuulla – ja saattaa valehdella myös tilanteissa, joissa ei tarvitsisi.


    • Kvantti

      Suuriakin järjestelmiä, kuten ohjelmointiympäristö Genera ja tekstintoimitin ZMACS, on koodattu LISP:illä, joka on (perusteiltaan) funktionaalinen kieli.

    • Kvantti

      Suuriakin ohjemointijärjestelmiä on koodattu LISP:illä, kuten ohjelmointijärjestelmä Genera ja tekstintoimitin ZMACS.

    • Turbo-Urpo1

      𝙽𝙸𝙸𝙽 𝙵𝚄𝙽𝙺𝚃𝙸𝙾𝙽𝙰𝙰𝙻𝙸𝚂𝚃𝙰

      #!/𝚞𝚜𝚛/𝚋𝚒𝚗/𝚎𝚗𝚟 𝚙𝚢𝚝𝚑𝚘𝚗3

      𝚍𝚎𝚏 𝚅𝚒𝚔𝚊𝙼𝚎𝚛𝚔𝚔𝚒⟮ 𝚖𝚓𝚘𝚗𝚘 ⟯:
      𝚛𝚎𝚝𝚞𝚛𝚗 𝚖𝚓𝚘𝚗𝚘[-1]⨟

      𝚍𝚎𝚏 𝙴𝚔𝚊𝙼𝚎𝚛𝚔𝚔𝚒⟮ 𝚖𝚓𝚘𝚗𝚘 ⟯:
      𝚛𝚎𝚝𝚞𝚛𝚗 𝚖𝚓𝚘𝚗𝚘[0]⨟

      𝚙𝚛𝚒𝚗𝚝⟮ 𝙴𝚔𝚊𝙼𝚎𝚛𝚔𝚔𝚒⟮ "Matti" ⟯⟯;
      𝚙𝚛𝚒𝚗𝚝⟮ 𝚅𝚒𝚔𝚊𝙼𝚎𝚛𝚔𝚔𝚒⟮ "Matti" ⟯⟯;

      • OOOooo

        Millä sait erilaisen fontin?


      • Turbo-Urpo1
        OOOooo kirjoitti:

        Millä sait erilaisen fontin?

        Jos sinä näet sen tekstin siinä, silloin sinullakin on jo sama fontti. Mikäli sinulla ei vielä ole samaa fonttia näet viestin näin: https://i.postimg.cc/D0RXw7WD/Valinta-029.png


    • Turbo-Urpo1

      📌💲😀 😋💧📖📗📙📜📀
      💥🤓🤔🥎🥭🥮🥯🥤🥦🤠
      Millä tavalla sinä näet nämä merkit ?

      • Turbo-Urpo1

      • Turbo-Urpo1

        Jos et näe niitä samalla tavalla kuin minä, työnnä roskiin se Ubuntu.


    • linusoliluuseri

      No sen kun ymmärtää että Linus Torvads oli erittäin varakas henkilä jotta hänellä oli rahaa tehdä vapaa-ajallaan omaa käyttöjärjestelmää, on erittäin itsekäs MIES KYLLÄ. HIRVITTÄVÄN ITSEKÄS MIES ON LINUS.

      Jos tarkoitit multi-threadeja tuolla, mikä ihme funktionaalinen mitä sanoit, jokainenhan kooderi käyttää vähintään 34 yhtäaikaista laskutoimitusta samaan aikaan?

      C-koodeerit voivat kutsua tuollaista "rekursiiviseksi koodiksi", myöskin, mutta aloittajahan ei mitään threadeistä eikä muutenkaan prosessoreiden toiminnoista ymmärrä...

    • älykkyysonnoin60tuo

      Eli siis koodi muuttaa itse omaa ohjelmakoodiaan ajon aikana itse... rekursiivista koodia, keksitty jo 70-luvulla saatanan pelle transistori-mies :D

      • Rekursiivinen koodi kutsuu itseään, ei muuta itseään.

        Ja kyllä, rekursiota käytetään paljon funktionaalisesti ohjelmoitaessa.


      • Turbo-Urpo1
        M-Kar kirjoitti:

        Rekursiivinen koodi kutsuu itseään, ei muuta itseään.

        Ja kyllä, rekursiota käytetään paljon funktionaalisesti ohjelmoitaessa.

        "Rekursiivinen koodi kutsuu itseään, ei muuta itseään."

        Väärinhän se meni:
        Se tekee sen mitä käsketään tai ohjelmoidaan tekemään.

        -

        "Ja kyllä, rekursiota käytetään paljon funktionaalisesti ohjelmoitaessa."
        OKSETTAA tämä pätemisen tarve.


    Ketjusta on poistettu 2 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Mielessäni vieläkin T

      Harmi että siinä kävi niinkuin kävi, rakastin sinua. Toivotan sulle kaikkea hyvää. Toivottavasti löydät sopivan ja hyvän
      Ikävä
      42
      2217
    2. Pupuhuhdasta löytyi lähes sadan kilon miljoonalasti huumeita

      Pupuhuhdasta löytyi lähes sadan kilon miljoonalasti huumeita – neljä Jyväskylän Outlaws MC:n jäsentä vangittu: "Määrät p
      Jyväskylä
      51
      1738
    3. Persut petti kannattajansa, totaalisesti !

      Peraujen fundamentalisteille, vaihtkaa saittia. Muille, näin sen näimme. On helppo luvata kehareille, eikä ne ymmärrä,
      Maailman menoa
      40
      1553
    4. Ei luottoa lakko maahan

      Patria menetti sovitun ksupan.
      Suomen Keskusta
      43
      1511
    5. Nähtäiskö ylihuomenna taas siellä missä viimeksikin?

      Otetaan ruokaöljyä, banaaneita ja tuorekurkkuja sinne messiin. Tehdään taas sitä meidän salakivaa.
      Ikävä
      3
      1469
    6. Nellietä Emmaa ja Amandaa stressaa

      Ukkii minnuu Emmaa ja Amandaa stressaa ihan sikana joten voidaanko me koko kolmikko hypätä ukin kainaloon ja syleilyyn k
      Isovanhempien jutut
      8
      1454
    7. Sinäkö se olit...

      Vai olitko? Jostain kumman syystä katse venyi.. Ajelin sitten miten sattuu ja sanoin ääneen siinä se nyt meni😅😅... Lis
      Ikävä
      4
      1440
    8. Housuvaippojen käyttö Suomi vs Ulkomaat

      Suomessa housuvaippoja aletaan käyttämään vauvoilla heti, kun ne alkavat ryömiä. Tuntuu, että ulkomailla housuvaippoihin
      Vaipat
      3
      1371
    9. Hyvää yötä ja kauniita unia!

      Täytyy alkaa taas nukkumaan, että jaksaa taas tämän päivän haasteet. Aikainen tipu madon löytää, vai miten se ärsyttävä
      Tunteet
      5
      1281
    10. Lepakot ja lepakkopönttö

      Ajattelin tehdä lepakkopöntön. Tietääkö joku ovatko lepakot talvella lepakkopöntössä ´vai jossain muualla nukkumassa ta
      8
      1245
    Aihe