MarisO Februāris 24 Share Februāris 24 Iesācējiem ir noderīga "Land of Lisp" grāmata. Tie makrosi ir tāda nedaudz ezotēriska tēma. Iekš Clojure strādnieki parasti neraksta (jaunus) makrosus katru dienu. Man vienreiz nācās mainīt kodu, kas tika ģenerēts no datu struktūras (ar makrosu), ko bija tur sarakstījis kāds kontraktors. Pārveidoju uz normālu funkciju. Bet piemēram threading (->, cond->, -->) makrosi ir ļoti noderīgi un tos programmētāji lieto katru dienu. Iekš Common Lisp tie laikam nav tik populāri. 1 Link to comment Share on other sites More sharing options...
Raimonds1 Februāris 24 Share Februāris 24 Nedaudz palasīju te https://www2.cs.sfu.ca/CourseCentral/310/pwfong/Lisp/1/tutorial1.html tā, intereses pēc Link to comment Share on other sites More sharing options...
HIGH-Zen Februāris 24 Author Share Februāris 24 Paldies @Raimonds1 , tur ir vesels kurss: https://www2.cs.sfu.ca/CourseCentral/310/pwfong/Lisp/ Kad pabeigšu "On Lisp", tad ķeršos klāt. Atkārtošana zināšanu māte 12.02.2024. , 20:50, HIGH-Zen teica: Par laimi es tam varu veltīt neierobežoti daudz laika. Kaut vai no rīta līdz vakaram, katru dienu. 1 Link to comment Share on other sites More sharing options...
Raimonds1 Februāris 28 Share Februāris 28 Tā, meklējot informāciju, atradu šo Scheme http://www.shido.info/lisp/scheme1_e.html By Using Scheme: You can write beautiful programs. You can enjoy programming. These are the only reasons to learn Scheme. You will find some difficulties if you write practical applications using Scheme. Link to comment Share on other sites More sharing options...
Raimonds1 Februāris 28 Share Februāris 28 http://www.shido.info/lisp/idx_scm_e.html Link to comment Share on other sites More sharing options...
HIGH-Zen Februāris 28 Author Share Februāris 28 Es kaut kad agrāk pētīju CHICKEN Scheme implementāciju, kas kompilējas uz mašīnkodu. Sheme tas ir cits LISP dialekts. Tagad es mācos Common Lisp, SBCL implementāciju. Tā grāmata "On Lisp" lauž smadzenes, jo esmu pieradis programmēt imperatīvajās valodās. Tiku jau līdz makrosiem, kur redzams, ka nekā tāda citās valodās nav (iespējams, ka kaut kas līdzīgs ir Nim valodā, Nim-ā makrosus neesmu izmantojis, bet viņi pozicionē, ka tie ir diezgan spēcīgi). Link to comment Share on other sites More sharing options...
Raimonds1 Februāris 28 Share Februāris 28 Nu, LISP lietotāji saka, ka šīs saimes valodas esot labas tieši iesācējiem. Vēl bija grafiks, kur salīdzinātas valodas pēc zināšanu apjoma, lai efektīvi tās lietotu, tad nu LISP un sevišķi SCHEME izcēlās ar īpaši maza apjoma saturu. Link to comment Share on other sites More sharing options...
HIGH-Zen Februāris 28 Author Share Februāris 28 Pirms 13 minūtēm , Raimonds1 teica: Nu, LISP lietotāji saka, ka šīs saimes valodas esot labas tieši iesācējiem. Ja saprot LISP, tad protams tā var teikt, viņiem viss ir saprotams. Bet ja kodā ir izmantotas funkcijas un makrosi, kurus iesācējs nemaz nezin, tad es neteiktu, ka LISP ir laba valoda iesācējiem. Scheme varbūt ir vienkāršāka, nestrīdēšos. Link to comment Share on other sites More sharing options...
binary Februāris 28 Share Februāris 28 Pirms 47 minūtēm , 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 28 Share Februāris 28 Tie macro iekš Lispa izskatās tādi paši kā jebkurā citā valodā, piemēram C++. Ja tu viņus nezini, tad nezini 😂 Kāda starpība Lisp vai C? Paskaties cik Macrosu iekš Linux kerneļa vai Glib 😂 Link to comment Share on other sites More sharing options...
Raimonds1 Februāris 28 Share Februāris 28 quora saka tā https://www.quora.com/Why-do-people-say-Lisp-has-true-macros-versus-C-C-macros tulkojums Asistents. Cilvēki bieži saka, ka Lisp ir "patiesi" makro salīdzinājumā ar C/C++ makro, jo Lisp makro ir jaudīgāki un elastīgāki. Programmā Lisp makro darbojas ar pašu kodu, ļaujot izveidot jaunas valodas konstrukcijas un sintakses transformācijas. Tas nozīmē, ka Lisp makro var izmantot, lai paplašinātu valodu tādos veidos, kas nav iespējami ar C/C++ makro, kas būtībā ir tikai teksta aizstāšana. Lisp makro var manipulēt ar koda abstrakto sintakses koku, ļaujot izveidot jaunas vadības struktūras un valodas līdzekļus, kas nemanāmi integrējas ar pārējo valodu. Šis elastības un izteiksmīguma līmenis bieži tiek minēts kā iemesls Lisp makro pārākumam pār C/C++ makro. https://www.reddit.com/r/cpp/comments/7bbf4r/c_metaprogramming_and_lisp_macros/ Link to comment Share on other sites More sharing options...
camel Februāris 28 Share Februāris 28 Vai to programmēšnas valodu nav par daudz? Kapēc nevar visas foršās fīčas kā funkcionālā programmēšana, meta programmēšana un AOP sabāzt vienā valodā. F# ir computational expressions - interesanta padarīšana (bet man saprašana par īsu), bet nav nekā eksotiskāka. Tad vēl bija tādas CLI valodas Boo un Nemerle, ko neviens laikam neizmantoja un microsofts neko līdzīgu arī laikam nepiedāvā. Apache Groovy izskatās arī interesants zvērs ... Link to comment Share on other sites More sharing options...
AndrisBB Februāris 28 Share Februāris 28 Pirms 1 minūtes , camel teica: Kapēc nevar visas foršās fīčas kā funkcionālā programmēšana, meta programmēšana un AOP sabāzt vienā valodā. Tad beigās izaug tāds pats monstri kā C++ vai Rust, kurus tolkam pilnībā nepārzin neviens. Bet nu galvenais jau rezultāts, ja var kautko pilnīgi mierīgi izdarīt ar valodu X, tad kam vajag tās ntās fīčas. Link to comment Share on other sites More sharing options...
HIGH-Zen Februāris 28 Author Share Februāris 28 (labots) pirms 3 stundām , binary teica: Vai vari parādīt kādu piemēru? Labākie un vienkāršākie piemēri, par to kā trūkst citās valodās, ko atradu ir šeit : Why Lisp macros are cool, a Perl perspective Citēt Source code generation is unreliable and inadvisable in every language except Lisp. Labots Februāris 28 - HIGH-Zen Link to comment Share on other sites More sharing options...
binary Februāris 28 Share Februāris 28 Nu kādu pusi izlasīju - izskatās pēc kaut kāda fanātiķa-humorista pusargumentēta spama ar pašizdomātiem aizbildinājumiem un pārspīlējumiem. 1 Link to comment Share on other sites More sharing options...
HIGH-Zen Februāris 28 Author Share Februāris 28 Kāds vēl spams. Tie arī ir tie makrosi. Ar to palīdzību LISP-ā var rakstīt programmas, kuras raksta programmas. Te nu ir redzams, kā par LISP spriež cilvēki, kuri neko tajā nerubī. Link to comment Share on other sites More sharing options...
binary Februāris 28 Share Februāris 28 Tak tur ievads (puse visa tā spama) rakstīts tā, lai nomelnotu un, būsim godīgi, arī apmelotu C un C++ un tādējādi mēģinātu lispu parādīt kā kaut kādu labāku nekā tas patiesībā ir. Ar to pietiek, lai pārējo spamu varētu uztvert vien kā humorista verbāloo caureju, nevis kā kaut ko kaut nedaudz vērā ņemamu. Link to comment Share on other sites More sharing options...
Raimonds1 Februāris 28 Share Februāris 28 Pieņemsim, ka būtu situācija, ka kaut kādu iemeslu dēļ Latvijā būtu kādi divdesmit Lisp valodu grupas speciālisti, kas varētu argumentēti, ar piemēriem diskutēt un kam tas Lisp un tās saimes valodas būtu pirmā valoda! Kā to varētu panākt tagad? Link to comment Share on other sites More sharing options...
binary Februāris 28 Share Februāris 28 Pirms 27 minūtēm , HIGH-Zen teica: Te nu ir redzams, kā par LISP spriež cilvēki, kuri neko tajā nerubī. To tu par sevi? Jo es par lisp ne vārda nebildu. Komentārs bija par to spamu, nevis lispu. Link to comment Share on other sites More sharing options...
Raimonds1 Februāris 28 Share Februāris 28 Vispār jau ir google un ChatGPT, kam pēc atklājuma, ka, lūk, makrosi C++ ir citādi, paprasīt. https://marketsplash.com/tutorials/lisp/lisp-vs-cplusplus/ macros in lisp and c++ compare Link to comment Share on other sites More sharing options...
AndrisBB Februāris 28 Share Februāris 28 Pirms 6 minūtēm , Raimonds1 teica: Pieņemsim, ka būtu situācija, ka kaut kādu iemeslu dēļ Latvijā būtu kādi divdesmit Lisp valodu grupas speciālisti Iedomājies, parādītos 20 speciālisti ar krustiņa skrūvgriežiem, ko varētu uztaisīt? Varētu stundām diskutēt cik krustiņa skrūvgriezis ir lielisks. Plakanie ir sūdi un elektriskie ir izvirtība, īsti speci tikai ar primitīviem rīkiem darbojas. Link to comment Share on other sites More sharing options...
Raimonds1 Februāris 28 Share Februāris 28 Nu, būtu interesanti, kāds viņiem būtu skats uz to visu! Link to comment Share on other sites More sharing options...
AndrisBB Februāris 28 Share Februāris 28 https://en.wikipedia.org/wiki/Law_of_the_instrument The notion of a golden hammer, "a familiar technology or concept applied obsessively to many software problems", was introduced into information technology literature in 1998 as an anti-pattern: a programming practice to be avoided.[12] Link to comment Share on other sites More sharing options...
HIGH-Zen Februāris 28 Author Share Februāris 28 Pirms 40 minūtēm , binary teica: Komentārs bija par to spamu, nevis lispu. 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? Link to comment Share on other sites More sharing options...
Raimonds1 Februāris 28 Share Februāris 28 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/ Link to comment Share on other sites More sharing options...
AndrisBB Februāris 28 Share Februāris 28 Kāda jēga salīdzināt divas relatīvi dažādas lietas? Tik cik nosaukumi līdzīgi. Tak vaitad kāds liek lietot makrosus iekš C vai C++ un ka tie būtu lietojami visur un vienmēr un nav nekādu ierobežojumu? Tak saucamais tirgus visu noliek pa vietām. Ja jau būtu kāda liela jēga no tām Lisp-veidīgajām valodām, tad viņas arī būtu kautkur plus/mīnus izmantotas, bet tā - kautkādas nišas atrodas, kur ir lietderīgas un tas aī viss. Jēga visai maza. Link to comment Share on other sites More sharing options...
Raimonds1 Februāris 28 Share Februāris 28 pirms 8 stundām , AndrisBB teica: Tie macro iekš Lispa izskatās tādi paši kā jebkurā citā valodā, piemēram C++. Ja tu viņus nezini, tad nezini 😂 Kāda starpība Lisp vai C? Pirms 30 minūtēm , AndrisBB teica: Kāda jēga salīdzināt divas relatīvi dažādas lietas? Tik cik nosaukumi līdzīgi. Tak vaitad kāds liek lietot makrosus iekš C vai C++ un ka tie būtu lietojami visur un vienmēr un nav nekādu ierobežojumu? Salīdzināt var. Link to comment Share on other sites More sharing options...
Jurkins Februāris 28 Share Februāris 28 Raimi, ...😉 es saprotu, ka jautājums ir bezgala nepieklājīgs, bet Tu kaut vienu makrosu dzīvē esi uzrakstījis? 🤣 1 Link to comment Share on other sites More sharing options...
AndrisBB Februāris 28 Share Februāris 28 Tak jau vienreiz mēģināja pa jaunam bitus atklāt Link to comment Share on other sites More sharing options...
Raimonds1 Februāris 29 Share Februāris 29 Nu, te jau jautājums ir arī par to, ka topika autors pats atrada vai arī materiālos izlasīja, ka, lūk, Lispa makrosi ir citādi, bet kāds cits uzrakstīja, ka tie paši vien ir, kas, pēc pirmajām 3 gogles adresēm un tieša jautājumam ChatGPT izrādījās, ka atšķiras gan. Man jau interesē tā teorija par https://www.quora.com/Why-do-people-say-Lisp-has-true-macros-versus-C-C-macros tulkojums Asistents. Cilvēki bieži saka, ka Lisp ir "patiesi" makro salīdzinājumā ar C/C++ makro, jo Lisp makro ir jaudīgāki un elastīgāki. Programmā Lisp makro darbojas ar pašu kodu, ļaujot izveidot jaunas valodas konstrukcijas un sintakses transformācijas. Tas nozīmē, ka Lisp makro var izmantot, lai paplašinātu valodu tādos veidos, kas nav iespējami ar C/C++ makro, kas būtībā ir tikai teksta aizstāšana. Lisp makro var manipulēt ar koda abstrakto sintakses koku, ļaujot izveidot jaunas vadības struktūras un valodas līdzekļus, kas nemanāmi integrējas ar pārējo valodu. Šis elastības un izteiksmīguma līmenis bieži tiek minēts kā iemesls Lisp makro pārākumam pār C/C++ makro. Tā kā Lisp tiek deklarēta kā augsta līmeņa vienkārša valoda, tad ir iespēja to makrosu uzrakstīt un ar piemēru parādīt, cik tas viss vienkārši un kā praksē parādās tās Lispa priekšrocības. Te jau laiku pa laikam no speciālistu sarakstītā var dažādas pērles salasīt, piemēram, ka 1kW bloku nevarēs viegli aizstāt ar lētu, darbojošos 3-4-5 kW bloku. Link to comment Share on other sites More sharing options...
Jurkins Februāris 29 Share Februāris 29 Pirms 59 minūtēm , Raimonds1 teica: Lisp makro var manipulēt ar koda abstrakto sintakses koku, ļaujot izveidot jaunas vadības struktūras un valodas līdzekļus, kas nemanāmi integrējas ar pārējo valodu. Vai Tu pats saproti, ar kādu koku kur vajag manisevipulēt? Link to comment Share on other sites More sharing options...
HIGH-Zen Februāris 29 Author Share Februāris 29 Pirms 55 minūtēm , Raimonds1 teica: topika autors pats atrada vai arī materiālos izlasīja, ka, lūk, Lispa makrosi ir citādi Jā, īsumā LISP makross ir programma, kura raksta programmu. pirms 11 stundām , AndrisBB teica: Tak saucamais tirgus visu noliek pa vietām. Ja jau būtu kāda liela jēga no tām Lisp-veidīgajām valodām, tad viņas arī būtu kautkur plus/mīnus izmantotas, bet tā - kautkādas nišas atrodas, kur ir lietderīgas un tas aī viss. Jēga visai maza. Citēt This is the same argument you tend to hear for learning Latin. It won't get you a job, except perhaps as a classics professor, but it will improve your mind, and make you a better writer in languages you do want to use, like English. Beating the Averages Link to comment Share on other sites More sharing options...
Raimonds1 Februāris 29 Share Februāris 29 https://en.wikipedia.org/wiki/Abstract_syntax_tree https://en.wikipedia.org/wiki/Program_analysis https://en.wikipedia.org/wiki/Program_transformation https://en.wikipedia.org/wiki/Metaprogramming Ja iespējams, var šo paskaidrot ar citiem piemēriem https://lisp-journey.gitlab.io/blog/common-lisp-macros-by-example-tutorial/ Link to comment Share on other sites More sharing options...
AndrisBB Februāris 29 Share Februāris 29 1 stundu atpakaļ, Raimonds1 teica: Lispa makrosi ir citādi, bet kāds cits uzrakstīja, ka tie paši vien ir, kas, pēc pirmajām 3 gogles adresēm un tieša jautājumam ChatGPT izrādījās, ka atšķiras gan. Nu bet loģiski ka atšķiras, arī funkcijas, mainīgie, klases un jebkas cits katrā valodā ir mazliet savādāks, tapēc arī ir dažādas valodas. Bet tie visi ir pilnīgākie sīkumi, pēc būtības tak dara vienu un to pašu lietu. Nav tur nekas tik ļoti labāks, lai tur īpaši par to iesvīstu. Tas tas pats kas teikt ka VS Code ir labāks par Zed, jo fona krāsu var uzlikt mazliet dzeltenāku. Link to comment Share on other sites More sharing options...
Jurkins Februāris 29 Share Februāris 29 Pie tam nvidias šefs esot izteicies, ka programmēšanu vairs var nemācīties, jo darba tāpat nebūs.🤣 Link to comment Share on other sites More sharing options...
HIGH-Zen Februāris 29 Author Share Februāris 29 @Raimonds1 ko tu ar tām Wikipedia definīcijām centies pateikt? Link to comment Share on other sites More sharing options...
AndrisBB Februāris 29 Share Februāris 29 Ja izlasa visu interviju, tyad viņš teica mazliet savādāk. Ka tiem kas tagad sāk, aka studentiem, nav jēgas mācīties sarežģitu sintaksi, jo AI ar to tiks labāk galā. Bet principus būs jāzin tāpat, jo vienkārši nāksies čatam jautāt izdari X un izdari Y, bet nevar to pajautāt, ja nezin ko nezin. Link to comment Share on other sites More sharing options...
versatile Februāris 29 Share Februāris 29 Pirms 1 minūtes , HIGH-Zen teica: ko tu ar tām Wikipedia definīcijām centies pateikt? Parādīt intelektuālo pārākumu. Pavasaris tak. Riesta laiks. 1 Link to comment Share on other sites More sharing options...
HIGH-Zen Februāris 29 Author Share Februāris 29 Pirms 13 minūtēm , Jurkins teica: Pie tam nvidias šefs esot izteicies, ka programmēšanu vairs var nemācīties, jo darba tāpat nebūs. ChatGPT performs well with easy and medium programming problems. ChatGPT encounters difficulties when solving more complicated task. By the programming tasks in C++ and Java, ChatGPT cannot outperform humans. Link to comment Share on other sites More sharing options...
AndrisBB Februāris 29 Share Februāris 29 Pirms 1 minūtes , HIGH-Zen teica: By the programming tasks in C++ and Java, ChatGPT cannot outperform humans. Un kur tev pārliecība ka pēc 5 gadien nesāks parādīties programmēšanas valodas, kuras tieši piemērotākas AI? 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!