HIGH-Zen Februāris 29 Author Share Februāris 29 (labots) Pirms 6 minūtēm , AndrisBB teica: valodas, kuras tieši piemērotākas AI? Tu domā LISP? LISP kodā, ko palūdzu MS Copilot-am izskaidrot, bieži vien ir pa kādai kļūdai (neprecīzs skaidrojums), tā ka akli nevar ticēt. Labots Februāris 29 - HIGH-Zen Link to comment Share on other sites More sharing options...
AndrisBB Februāris 29 Share Februāris 29 Noteikti ka LISP būs valoda, kas būs populāra ar AI. Tāpat ka viņa jau ir 'ļoti' populāra un plaši izmantota pēdējos 60 gadus 😂 Beidzot būs sagaidījusi savu 'zvaigžņu stundu' 1 Link to comment Share on other sites More sharing options...
Jurkins Februāris 29 Share Februāris 29 (labots) Man nav pārliecības, ka AI vispār ir vajadzīgas programmēšanas valodas. Mēs nezin kāpēc iedomājamies, ka robots ir ar divām kājām un divām rokām un , ka AI "jādomā" kā cilvēkam. Labots Februāris 29 - Jurkins 2 Link to comment Share on other sites More sharing options...
AndrisBB Februāris 29 Share Februāris 29 Paskālu vēl arī AI rakstīs 😂 Just now, Jurkins teica: Man nav pārliecības, ka AI vispār ir vajadzīgas programmēšanas valodas. Kautkādai iespējai jau tam kodam/programmai būt cilvēklasāmai jau būs jābut. Link to comment Share on other sites More sharing options...
Jurkins Februāris 29 Share Februāris 29 Pirms 1 minūtes , AndrisBB teica: būt cilvēklasāmai jau būs jābut Un ja nu AI nevajadzēs cilvēku?😉 1 Link to comment Share on other sites More sharing options...
HIGH-Zen Februāris 29 Author Share Februāris 29 Pirms 3 minūtēm , AndrisBB teica: Paskālu vēl arī AI rakstīs 😂 Raksta jau tagad program forLoop; var a: integer; begin for a := 10 to 20 do begin writeln('Value of a: ', a); end; end. Link to comment Share on other sites More sharing options...
Jurkins Februāris 29 Share Februāris 29 Tāpat kā domājot par AI mēs nezin kāpēc tūlīt iedomājamies par kaut kādu "frīku spēļmantiņu" chatgpt. Kas zin, kas notiek mikromīkstā, nvidia un citu lielo spēlētāju dziļumos. Link to comment Share on other sites More sharing options...
AndrisBB Februāris 29 Share Februāris 29 Pirms 2 minūtēm , Jurkins teica: Un ja nu AI nevajadzēs cilvēku?😉 Nu viss tak būs atkarīgs no tā ko programmē, it īpaši ja runājam par kautkādu 'tuvāko' nākotni. Lielu daļu koda jau tagad AI var rakstīt. Bet kautkādām specifiskām nišām neies cauri, jo AI jau vajag 'uztrenēt' lai par to zinātu. Kautvai piemēram produkti pie kā strādāju - pārsvarā ir pašu in-house CPU, pašu OS, faktiski visam pašu bilbliotēkas un komponenti. AI tad jātrenē specifiski platformai un problēmām. Vai tas kautkad tuvākajā nākotnē atmaksāsies, nu teiksim tuvākajos 10 gados - maz ticams. Kautkādas tipiskas problēmas - uzrakstīt kautko priekš softwātes kas iet uz 'standarta OS', standarta valodas, freimworki, tur jau nav problēma. It īpaši ja dod tam AI pieeju visai koda bāzei. Pirms 1 minūtes , Jurkins teica: Tāpat kā domājot par AI mēs nezin kāpēc tūlīt iedomājamies par kaut kādu "frīku spēļmantiņu" chatgpt. Nu ChatGPT jau primāri nav domāts programmēšanas problēmu risināšanai, bet lai rakstītu dzejoļus un sarunātos ar cilvēkiem. Protams var uzrakstīt arī kodu, pietam ne pārāk sliktu. Bet tas nav primārais mērķis. Tur tak jāprasa visiem AI, kas tieši trenēti koda rakstīšanai. Link to comment Share on other sites More sharing options...
Jurkins Februāris 29 Share Februāris 29 Pirms 1 minūtes , AndrisBB teica: nu teiksim tuvākajos 10 gados - maz ticams. Es būtu uzmanīgāks. Pirms 10 gadiem AI bija "kaut kur tur ārā". Bet nu labi, tas ir offtopiks. Link to comment Share on other sites More sharing options...
AndrisBB Februāris 29 Share Februāris 29 Vakar gājām cauri 'buglistam' un tā arī vēl nav atrisinātas 100 un viena piecus gadus veca problēma, vai vēl tiek 'strādāts pie tās'. Lielākoties jau cilvēki nevar izlemt vai risināt to problēmu vai nē un kā būtu pareizi viņu risināt. Koda rakstīšana jau pat cilvēkam varētu aizņemt tik pāris dienas, nemaz nerunājot par AI. Link to comment Share on other sites More sharing options...
raiviic Februāris 29 Share Februāris 29 Pirms 13 minūtēm , Jurkins teica: Kas zin, kas notiek mikromīkstā, nvidia un citu lielo spēlētāju dziļumos. Kā arī militāristu un nopietna līmeņa hakeru lauciņā. Krievi kaut kad pasen reklamēja robotu/kareivi. Nu labi, par to "analogov ņetu" skaidrs, bet "otrpus dīķa" un tālajos austrumos un ne tikai, gan jau arī nopietni pie tā strādā. Link to comment Share on other sites More sharing options...
versatile Februāris 29 Share Februāris 29 Pirms 20 minūtēm , AndrisBB teica: Lielākoties jau cilvēki nevar izlemt vai risināt to problēmu vai nē un kā būtu pareizi viņu risināt. Nu, vai arī tas ietver kaut kādu lielāku loģikas maiņu vai savietojamību vai atpakaļsavietojamību. Sliktākajā gadījumā - ieradumu maiņu lietotājiem, kuru pagrūti saskaņot visos departamentos un līmeņos. Tā nu visiem visu laiku kaut kas drusku kaitina, nevis vienreiz poga no zaļas paliek par sarkanu. Link to comment Share on other sites More sharing options...
binary Februāris 29 Share Februāris 29 pirms 15 stundām , HIGH-Zen teica: Nekādu spamu neredzu. Citi LISP makrosu piemēri internetā manuprāt ir pārāk sarežģīti izskaidroti. Šeit vienkārši un saprotami piemēri. Un kas gan tur tajos C piemēros ir nepareizi? Prasās argumentēta kritika, nevis ieņemam pozu "spams". Un kur tur ir melots? Nu tak protams, ka neredzi. Esi tak pats nostājies kaut kādā pozā. Nepareizi? Kaut vai tas, ka aprakstītas kaut kādas nebūt "problēmas", kas nemaz nav problēmas. Kas prot tos C makrosus izmantot, tas arī izmanto pareizi. Neticu, ka lisp šajā ziņā būtu atšķirīgs - gan jau arī tur jāprot viņus izmantot, lai tas sanākut. Faktiski tos piemērus var pielīdzināt mēģinājumam dēlī ieskrūvēt skrūvi, izmantojot āmuru - nu nesanāks, bet tas nebūt nenozīmē, ka skrūve, dēlis vai āmurs būtu "slikts un nelietojams". Par "reliability" tur kaut kādas muļķības sarakstītas. Kaut kāds "source filters always break", kamēr lispā "source filters never break" - izteikta heitera/evaņģēlista frāze bez jelkāda pamatojuma. [quote] In most programming languages, syntax is complex. Macros have to take apart program syntax, analyze it, and reassemble it. They do not have access to the program's parser, so they have to depend on heuristics and best-guesses. Sometimes their cut-rate analysis is wrong, and then they break. But Lisp is different. Lisp macros *do* have access to the parser, and it is a really simple parser. A Lisp macro is not handed a string, but a preparsed piece of source code in the form of a list, because the source of a Lisp program is not a string; it is a list. And Lisp programs are really good at taking apart lists and putting them back together. They do this reliably, every day. [/quote] What? Nu te pirmā rindkopa IMHO ir klaji meli. Un, protams, "lisp programs are really good" (bez jebkāda pamatojuma), "lisp programs are reliable" (kā jau jebkurā citā valodā rakstītas programmas), blah blah blah. 1 Link to comment Share on other sites More sharing options...
AndrisBB Februāris 29 Share Februāris 29 pirms 1 stundas , Jurkins teica: Es būtu uzmanīgāks. Pirms 10 gadiem AI bija "kaut kur tur ārā". Bet nu labi, tas ir offtopiks. Nēnu skaidrs ka tuvāko 5 - 10 gadu laikā tiks uztaisīti jaudīgāki NPU čipi un uztrennēti advancētāki un gudrāki AI modeļi, iespējams ka pat rakstīs diezgan labu kodu. Bet cik ātri tas tiks integrēts kautkādā jēgpilnā kapacitātē ikdienas darbā? Skaidrs ka mikro uzņēmumi ar pāris vai pārdesmit darbiniekiem to var integrēt ātri, vai arī visādi Apple ar bezgalīgiem resursiem. Bet uzņēmums vidējais, ar pārsimts vai tūkstots programmētājiem? Kurā ir ntie procesi, in-house tūļi un rīki. Tas vienkārši nebūs fiziski izdarāms ātrāk par 5 vai cik tur gadiem, tas vienkārši prasa laiku, pat ja AI jau stāv gatavs. Visu esošo infrastruktūru un procesus jau nemetīs ārā uzreiz un nesāks visu no nulles. Plus tie procesi jau var būt diezgan gari, atkarībā no ieksējās birokrātijas līmeņa. Sākot no problēmas identificēšanas, prioritizēšanas, kautkādas darbības veikšānaas, verificēšanas utt. Pati programmēšana tur labi ja 10 - 20% no visa procesa. Pat programmētājs vidējais, kuram primāri būtu jānodarbojas ar koda rakstīšanu, maz ticams ka pavada vairāk kā 30 - 40% produktīvā darba tieši kodēšanai. Jo augstāk stāvi tanī hierarhijā jo mazāki tie % paliek. Tāka ja vien AI neraksta kvalitatīvāku kodu, vai to nedara produktīvāk, tad īpaši lielas intereses jau investēt nav. Kā jau jebkurā ražošana, ja noalgot kādu maksā lētāk (kopumā) kā nopirkt robotu, tad nu nav īpaša interese investēt. Tāka maz ticams ka tuvākajos 10 gados būs kādas būtiskas izmaiņas. "sur tur protams kādu daļu koda rakstīs AI, bet tālu no tā ka aizstās pilnībā programmētājus. Japānā starpcitu tikai pirms pāris mēnešiem atcēla prasību valsts iestādēs visus dokumentus iesniegt ar disketēm. Kas to lai zin kad pilnībā to pārstās darīt 😂 Pirms 13 minūtēm , binary teica: Lisp macros *do* have access to the parser, and it is a really simple parser. A Lisp macro is not handed a string, but a preparsed piece of source code in the form of a list Vaitad trūkst valodas kur ir visādi eval utt. Kur programma var rakstīt pati sevi, kautvai Pitoni vai Javascripti. Arī iekš C++ visi Makrosi lielākoties var tikt aisztāti ar constexp, kas pa lielam arī tiks izpildīti kompilēšanas laikā, jeb kods rakstīs kodu. Visas makrosu problēmas atkritīs. Link to comment Share on other sites More sharing options...
binary Februāris 29 Share Februāris 29 Pirms 37 minūtēm , AndrisBB teica: Tāka ja vien AI neraksta kvalitatīvāku kodu, vai to nedara produktīvāk, tad īpaši lielas intereses jau investēt nav. Kā jau jebkurā ražošana, ja noalgot kādu maksā lētāk (kopumā) kā nopirkt robotu, tad nu nav īpaša interese investēt. Nereti pat nepietiek ar to, ka kaut kas būtu produktīvāk, lētāk vai efektīvāk. Bieži vien pieturās pie principa "if it ain't broke, don't fix it". Link to comment Share on other sites More sharing options...
AndrisBB Februāris 29 Share Februāris 29 Jādamā jau arī 3 soļus uz priekšu. Integrēt AI visur, bet tad arī būs jāmeklē jauni cilvēki, kas to visu apkalpos. Ja paskatās tagad algas, tas viss ar AI saistītais dārgāk. Ja būs lielāks pieprasījums, tad būs vēl lielāks iztrīkums un nāksies maksāt 3x lielāku algu AI spečukiem. 😂 Link to comment Share on other sites More sharing options...
HIGH-Zen Februāris 29 Author Share Februāris 29 Neizraujam no konteksta teikumu daļas 1 stundu atpakaļ, binary teica: Lisp programs are really good at taking apart lists and putting them back together. Ja jau tev nepatīk manis iedotais īsais piemērs, tad Raimim varbūt sanāk labāk izskaidrot, kas ir makross LISP valodā (īsumā - LISP makross ir programma, kura raksta programmu) pirms 16 stundām , Raimonds1 teica: Pareizi, aprakstiet kārtīgi vienu makrosu no C un vienu no Lisp ar visām tām iespējām, ko tur raksta Lisp valodai! Kas ir makros C valodā? C makros ir definēts ar direktīvu #define. Makros ir koda daļai piešķirts nosaukums, tāpēc ikreiz, kad kompilators programmā saskaras ar makros, tas to aizstās ar makros vērtību. https://www.simplilearn.com/tutorials/c-tutorial/what-is-macros-in-c Common Lisp makros iespēja ļauj lietotājam definēt patvaļīgas funkcijas, kas pārvērš noteiktas Lisp formas dažādās formās pirms to novērtēšanas vai apkopošanas. Tas tiek darīts izteiksmes līmenī, nevis rakstzīmju virknes līmenī kā lielākajā daļā citu valodu. https://lisp-journey.gitlab.io/blog/common-lisp-macros-by-example-tutorial/ Tā tad varētu būt atbilde tavam sākotnējam jautājumam un kalpot kā piemērs. pirms 23 stundām , binary teica: 28.02.2024. , 13:09, HIGH-Zen teica: Tiku jau līdz makrosiem, kur redzams, ka nekā tāda citās valodās nav Vai vari parādīt kādu piemēru? Link to comment Share on other sites More sharing options...
AndrisBB Februāris 29 Share Februāris 29 Pirms 40 minūtēm , HIGH-Zen teica: īsumā - LISP makross ir programma, kura raksta programmu Nu tu jau varēji iedot praktisku piemēru, kur tu tādu izmantosi. Nevis kautko teorētiski, bet reālu 'iz dzīves' piemēru. Link to comment Share on other sites More sharing options...
Raimonds1 Februāris 29 Share Februāris 29 (labots) https://ai.google/responsibility/principles/ Te visādas labas lietas sarakstītas. Taču, ja kaut nedaudz esam interesējušies, tad zinām, ka ir bijušas problēmas ar jebkuru no principiem. Labots Februāris 29 - Raimonds1 Link to comment Share on other sites More sharing options...
HIGH-Zen Februāris 29 Author Share Februāris 29 Pirms 8 minūtēm , AndrisBB teica: Nu tu jau varēji iedot praktisku piemēru, kur tu tādu izmantosi. Nevis kautko teorētiski, bet reālu 'iz dzīves' piemēru. Pagaidi, es vēl tikai mācos Link to comment Share on other sites More sharing options...
HIGH-Zen Februāris 29 Author Share Februāris 29 Interesantas atbildes iekš Hacker News: Is there a simple real-life example that shows the usefulness of the Lisp macro system to a beginner? Link to comment Share on other sites More sharing options...
AndrisBB Februāris 29 Share Februāris 29 Nēnu Google jau plus/mīnus visi māk lietot. Mēs jau prasam lai tu iedod savu piemēru, savādāk pagaidām nekas konkrēts nav dzirdēts - izņemot tukšus saukļus ka Lisp padarīs par labāku programmētāju, makrosi var rakstīt programmas utt. Bet nulle reāli piemēru, kas un kā. Link to comment Share on other sites More sharing options...
HIGH-Zen Februāris 29 Author Share Februāris 29 (labots) Pirms 26 minūtēm , AndrisBB teica: Bet nulle reāli piemēru, kas un kā. Eu nu beidz. Piemēri ir githubā: 12.02.2024. , 22:32, MarisO teica: 12.02.2024. , 20:50, HIGH-Zen teica: Nebiju gaidījis, ka tik ilgi nāksies čakarēties. Bet nu turpināšu, kamēr sāks izdoties. Manuprāt tas nav pārāk sarežģīti. Es palasīju "On Lisp" un vēl dažas grāmatas un ar to pietika. Mans sapnis bija uzkodēt "Advent Of Code" iekš Lisp. 2019 gadā izdevās: https://github.com/maruks/advent-of-code-2019-lisp Iekš Emacs es izmantoju https://github.com/joaotavora/sly Ir arī makrosa piemērs: https://github.com/maruks/advent-of-code-2019-lisp/blob/master/src/main.lisp Labots Februāris 29 - HIGH-Zen Link to comment Share on other sites More sharing options...
HIGH-Zen Februāris 29 Author Share Februāris 29 Pirms 39 minūtēm , AndrisBB teica: Mēs jau prasam lai tu iedod savu piemēru Man pašam tādu piemēru protams vēl nav, jo es tikai mācos. Bet gan jau būs arī mani piemēri. Kaut vai pēc gadiem diviem 5.01.2024. , 21:45, AndrisBB teica: Labi, pēc 2 gadiem izstāstīsi, cik par ļoti 'labāku' programmētāju tas tevi padarija. P.S. Emacs rullē Link to comment Share on other sites More sharing options...
AndrisBB Februāris 29 Share Februāris 29 Pēc 2 gadiem? Pats tak ieliki linku uz universitātes kursu, 4 nedēļas tas kurss. Ko tu tur 2 gadus mācīsies. Studentiem ar to jātiek glā paralēli vēl mācoties 100 un 1 citu lietu. Link to comment Share on other sites More sharing options...
HIGH-Zen Februāris 29 Author Share Februāris 29 Par tiem diviem gadiem pats pirmais ieminējies, es nospriedu, ka jā - man ar diviem gadiem pietiks. Es nekur nesteidzos, manā rīcībā ir viss pasaules laiks, varu mācīties katru dienu no rīta līdz vakaram. Tā ka lai studenti dragā četru nedēļu Crash Course, bet es mācīšos savā tempā. Link to comment Share on other sites More sharing options...
MarisO Februāris 29 Share Februāris 29 Rekur ir daži makrosu piemēri: https://clojure.org/guides/threading_macros Manuprāt tie ir visnoderīgākie. Visi Clojure programmētāji tos lieto katru dienu. 👍 Link to comment Share on other sites More sharing options...
HIGH-Zen Februāris 29 Author Share Februāris 29 Ou ou ou! Kas pie mums ir ieradies! Link to comment Share on other sites More sharing options...
MarisO Februāris 29 Share Februāris 29 LOL 1 Link to comment Share on other sites More sharing options...
HIGH-Zen Marts 1 Author Share Marts 1 14.02.2024. , 08:32, HIGH-Zen teica: Es katrā jaunā valodā ko iemācos uzrakstu sīku programmu, kura no eradio.lv izlasa visas radio adreses, lai var tās ielādēt AIMP pleijerī. Tas arī būs pirmais uzdevums Common Lisp-ā. Šis tas sanāca: (ql:quickload '("dexador" "plump" "lquery" "lparallel")) (ql:quickload "cl-ppcre") (defvar *url* "http://www.eradio.lv") (defvar *request* (dex:get *url*)) (defvar *pattern1* "http:\\/\\/.*.pls") (defvar *pattern2* "http:\\/\\/.*.m3u") (defvar *result1*) (defvar *result2*) (defvar *filename* "eradio-lv.m3u") ; uz Win11 iekš C:\Users\user\AppData\Roaming (setf *result1* (ppcre:all-matches-as-strings *pattern1* *request*)) (setf *result2* (ppcre:all-matches-as-strings *pattern2* *request*)) (defun writefile () (with-open-file (file *filename* :direction :output :if-exists :overwrite :if-does-not-exist :create) (dolist (line *result1*) (write-line line file) (write-line line)) (dolist (line *result2*) (write-line line file) (write-line line)))) (writefile) 1 Link to comment Share on other sites More sharing options...
HIGH-Zen Marts 1 Author Share Marts 1 Šeit var redzēt, ja šāda tipa koda gabals atkārtotos kādas reizes 10, tad varētu apsvērt izcelt to atsevišķā funkcijā vai pat makrosā (dolist (line *result1*) (write-line line file) (write-line line)) (dolist (line *result2*) (write-line line file) (write-line line)))) Link to comment Share on other sites More sharing options...
HIGH-Zen Marts 1 Author Share Marts 1 (labots) Variants ar makrosu: (ql:quickload '("dexador" "plump" "lquery" "lparallel")) (ql:quickload "cl-ppcre") (defvar *url* "http://www.eradio.lv") (defvar *request* (dex:get *url*)) (defvar *pattern1* "http:\\/\\/.*.pls") (defvar *pattern2* "http:\\/\\/.*.m3u") (defvar *result1*) (defvar *result2*) (defvar *filename* "eradio-lv.m3u") (setf *result1* (ppcre:all-matches-as-strings *pattern1* *request*)) (setf *result2* (ppcre:all-matches-as-strings *pattern2* *request*)) (defmacro doit(result) `(dolist (line ,result) (write-line line file) (write-line line))) (defun writefile () (with-open-file (file *filename* :direction :output :if-exists :overwrite :if-does-not-exist :create) (doit *result1*) (doit *result2*))) (writefile) Tad ja tas koda gabals atkārtotos 10 reizes, tad funkcijā būtu tikai jāizsauc makross (doit *result1*) (doit *result2*) (doit *result3*) ... utt. Šeit piemērotāks ir makross, nevis funkcija, jo tad būtu jāpadod arī "file" kā parametrs, īsāk sanāk ar makrosu. Kam te vajadzēja piemēru? Labots Marts 1 - HIGH-Zen 1 Link to comment Share on other sites More sharing options...
HIGH-Zen Marts 2 Author Share Marts 2 Neliela atkāpe. Vienīgā vieta, kur esmu redzējis super advancētus hakeru C++ makrosus ir Jedox SDK Connection.cpp failā: Spoiler #define ARRAY_MARSHAL_CONVERT(dest_identifier, src_identifier) \ struct arg_str_array_w dest_identifier; \ { \ dest_identifier.len = (src_identifier)->Length; \ if (dest_identifier.len > 0) { \ dest_identifier.a = (wchar_t**)calloc(dest_identifier.len, sizeof(wchar_t*)); \ if (dest_identifier.a == NULL) { \ throw gcnew System::OutOfMemoryException(); \ } \ for(unsigned long i = 0; i < dest_identifier.len; i++) { \ dest_identifier.a[i] = reinterpret_cast<wchar_t*>(Marshal::StringToHGlobalUni((src_identifier)[i]).ToPointer()); \ } \ } \ } #define ARRAY_MARSHAL_CLEANUP(dest_identifier) \ { \ if (dest_identifier.len > 0) { \ for(unsigned long i = 0; i < dest_identifier.len; i++) { \ Marshal::FreeHGlobal(IntPtr(dest_identifier.a[i])); \ } \ free(dest_identifier.a); \ } \ } // Izmantots šādi: // ... ARRAY_MARSHAL_CONVERT(adimensions, dimensions) palo_database_add_cube2_w_r(&err, pso, NULL, pdatabase, pcube, adimensions, (cube_type)type); ARRAY_MARSHAL_CLEANUP(adimensions); // ... ARRAY_MARSHAL_CONVERT(acoordinates, coordinates) palo_cell_rule_info_w_r(&err, &ruleinfo, pso, NULL, pdatabase, pcube, acoordinates); ARRAY_MARSHAL_CLEANUP(acoordinates); // ... utt. // savā laikā, kad tulkoju SDK uz Pascal un vienlaicīgi uz Python (vēl otro - 2.7 laikam), // tad izmantoju kodu, kas ir pēc preprocessora (gcc -E). Tur bija ko pacīnīties :) Link to comment Share on other sites More sharing options...
AndrisBB Marts 2 Share Marts 2 Macrosi jau tāda aizvēsture iekš C++ un nav ieteicami lietošanā. Bet nu paraksti vairāk 'zema līmeņa' kodu un atrasīsi pietiekoši daudz makrosus - iekš kerneļiem, visādās MCU HAL bibliotēkās utt. Link to comment Share on other sites More sharing options...
binary Marts 2 Share Marts 2 (labots) 1.03.2024. , 18:58, HIGH-Zen teica: Kam te vajadzēja piemēru? Nu it kā es biju palūdzis piemēru, bet toreiz pēc taviem komentāriem bija radies iespaids, ka lisp ļauj elegantā un unikālā(!) veidā atrisināt jebkuru sarežģītu problēmu. Tevis dotais piemērs ir, teiksim tā, visnotaļ primitīvs un atrisināms vairākos veidos jebkurā kaut cik jēdzīgā programmēšanas valodā. pirms 8 stundām , HIGH-Zen teica: super advancētus hakeru C++ makrosus Kas tieši tur ir advancēts? Daudz koda rindiņu? Labots Marts 2 - binary 1 Link to comment Share on other sites More sharing options...
HIGH-Zen Marts 2 Author Share Marts 2 Pirms 14 minūtēm , binary teica: Tevis dotais piemērs ir, teiksim tā, visnotaļ primitīvs Tur jau tā sāls, ka pat iesācējs var sākt izmantot LISP makrosus. Man šķiet tīri eleganti. Nu ja grib ko advancētāku, tad vēlreiz var apskatīt sarežģītāku makrosu, kuru 25 rindiņās eleganti izsauc run funkcija: advent-of-code-2019-lisp/src/main.lisp Pirms 19 minūtēm , binary teica: pirms 9 stundām , HIGH-Zen teica: super advancētus hakeru C++ makrosus Kas tieši tur ir advancēts? Daudz koda rindiņu? Es ne pirms tam, ne pēc tam neko līdzīgu nekur neesmu redzējis. Varbūt vari parādīt kaut ko tamlīdzīgu? Tas ir OLAP datubāzes SDK. Link to comment Share on other sites More sharing options...
binary Marts 2 Share Marts 2 Pirms 2 minūtēm , HIGH-Zen teica: Tur jau tā sāls, ka pat iesācējs var sākt izmantot LISP makrosus. Man šķiet tīri eleganti. Gluži tāpat kā ar jebko citu programmēšanā - mazliet palasi, mazliet paeksperimentē un izmanto. Pirms 2 minūtēm , HIGH-Zen teica: Es ne pirms tam, ne pēc tam neko līdzīgu nekur neesmu redzējis. Varbūt vari parādīt kaut ko tamlīdzīgu? Labprāt parādītu, bet es tiešām nesaprotu, kas tieši tur ir tik advancēts (t.i., ko vajag rādīt) Parasti C++ makrosi, nekā īpaša. Grūti gan pateikt, kāpēc tas vispār realizēts ar makrosiem, kāpēc pēc ARRAY_MARSHAL_CLEANUP() lietošanas ir semikols un kāpēc tiek izmantots calloc(). pirms 9 stundām , AndrisBB teica: Macrosi jau tāda aizvēsture iekš C++ un nav ieteicami lietošanā. Nja… Ciest nevaru kodu, kurš pārbāzts ar makrosiem (C). Ja vēl patrāpās tāds, kur macros deklarē un definē funkcijas, to nosaukumos izmantojot makrosa argumentu, tad rodas grūti pārvarama vēlme mest mieru tam kodam un pievērsties kam citam 1 Link to comment Share on other sites More sharing options...
AndrisBB Marts 2 Share Marts 2 Pirms 3 minūtēm , binary teica: Nja… Ciest nevaru kodu, kurš pārbāzts ar makrosiem (C). Gribēju parādīt kodu ar tiešām sarežģitu marosu, bet padomāju ka labāk nē 😂 (no darba source koda) Parokoties mazliet pa Network Staku garāko atradu ap 700 rindiņām viens makross, un vēl tas makross satur citus makrosus vēl kādos 3 - 4 līmeņos. Bet nu reizēm jau tādi rodas, ja jādarbina kods uz kādiem 3 - 4 OS, dažnedažādi dzelži, kur katram dzelzim (aka network adapterim savas dīvainības), bet negribās kompilēt to kodu ieš gala bibliotēkas. Nordic Semi patīk makrosi. Tur ar var aiziet ntajos līmeņos, lai atšifrētu nākas mazliet smadzenes pakustināt. Piemēram ANT+/BLE stakā. Link to comment Share on other sites More sharing options...
HIGH-Zen Marts 2 Author Share Marts 2 Pirms 17 minūtēm , binary teica: Labprāt parādītu, bet es tiešām nesaprotu, kas tieši tur ir tik advancēts (t.i., ko vajag rādīt) Nu analoģiskas sarežģītības makrosu, kas ir kas vairāk nekā: #define SQR(n)((n)*(n)) Pirms 10 minūtēm , AndrisBB teica: Parokoties mazliet pa Network Staku garāko atradu ap 700 rindiņām viens makross O! Tas jau ir interesantāk. Link to comment Share on other sites More sharing options...
binary Marts 2 Share Marts 2 Pirms 6 minūtēm , HIGH-Zen teica: Nu analoģiskas sarežģītības makrosu, kas ir kas vairāk nekā: Nu tak tai SDK makrosā nekā sarežģīta nav. Ne jau no rindu skaita rodas tā sarežģītība. Link to comment Share on other sites More sharing options...
Recommended Posts
Izveido kontu, vai pieraksties esošajā, lai komentētu
Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas
Izveidot jaunu kontu
Piereģistrējies un izveido jaunu kontu, tas būs viegli!
Reģistrēt jaunu kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!