Jump to content

HIGH-Zen
 Share

Recommended Posts

HIGH-Zen
(labots)
Pirms 6 minūtēm , AndrisBB teica:

valodas, kuras tieši piemērotākas AI?

Tu domā LISP? :grin:

 

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

AndrisBB

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'

  • Atbalstu 1
Link to comment
Share on other sites

Jurkins
(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 - Jurkins
  • Patīk 2
Link to comment
Share on other sites

AndrisBB

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

Jurkins
Pirms 1 minūtes , AndrisBB teica:

būt cilvēklasāmai jau būs jābut

Un ja nu AI nevajadzēs cilvēku?😉

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

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

Jurkins

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

AndrisBB
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

Jurkins
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

AndrisBB

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

raiviic
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

versatile
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

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

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

AndrisBB
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

binary
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

AndrisBB

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

HIGH-Zen

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

AndrisBB
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

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

AndrisBB

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

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

HIGH-Zen
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ē :punk:

 

 

Link to comment
Share on other sites

AndrisBB

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

HIGH-Zen

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

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

 

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

HIGH-Zen

Š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

HIGH-Zen
(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? :cool:

Labots - HIGH-Zen
  • Patīk 1
Link to comment
Share on other sites

HIGH-Zen

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

AndrisBB

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

binary
(labots)
1.03.2024. , 18:58, HIGH-Zen teica:

Kam te vajadzēja piemēru? :cool:

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 - binary
  • Patīk 1
Link to comment
Share on other sites

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

binary
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) :D 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 :D

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

AndrisBB
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

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

binary
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

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