Jump to content

HIGH-Zen
 Share

Recommended Posts

MarisO

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. 

  • Patīk 1
Link to comment
Share on other sites

Raimonds1

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

HIGH-Zen

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

Raimonds1

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

HIGH-Zen
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

binary
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

AndrisBB

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

Raimonds1

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

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

AndrisBB
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

HIGH-Zen
(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 - HIGH-Zen
Link to comment
Share on other sites

binary

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.

  • Patīk 1
Link to comment
Share on other sites

HIGH-Zen

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ī. :mrgreen2:

Link to comment
Share on other sites

binary

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

Raimonds1

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

binary
Pirms 27 minūtēm , HIGH-Zen teica:

Te nu ir redzams, kā par LISP spriež cilvēki, kuri neko tajā nerubī. :mrgreen2:

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

AndrisBB
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

Raimonds1

Nu, būtu interesanti, kāds viņiem būtu skats uz to visu!

Link to comment
Share on other sites

HIGH-Zen
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

Raimonds1

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

AndrisBB

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

Raimonds1
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

Jurkins

Raimi, ...😉 es saprotu, ka jautājums ir bezgala nepieklājīgs, bet Tu kaut vienu makrosu dzīvē esi uzrakstījis? 🤣 

  • Haha 1
Link to comment
Share on other sites

Raimonds1

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

Jurkins
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?:haha:

Link to comment
Share on other sites

HIGH-Zen
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

AndrisBB
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

Jurkins

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

AndrisBB

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

versatile
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.

  • Haha 1
Link to comment
Share on other sites

HIGH-Zen
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

AndrisBB
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

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 kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...