Journal    Friends    Archive    User Info    memories
 

Zhurnaala tituls here - Komentāri

[info]thehe25. Jun 2008 17:09 Lūk, to es saucu par īstu determinismu!

Šodien, būdams kārtīgs darbinieks, cītīgi programmēju. Rakstot kādu procedūru, man savajadzējās uztaisīt vienu funkciju, ko tad šajā procedūrā vairākās vietās izsaucu. Nu labi, pabeidzu rakstīt procedūru, pēc tam uzrakstīju arī šo funkciju. Priecīgs mēģinu kompilēt savu programmu - nekā, kaut kāda kļūda. Neko darīt, nākas pētīt sīkāk, kas tad par problēmu. Ko domājies, ko ne - mana programma satur divas funckijas ar vienādu vārdu, izrādās, ka funkcija ar tādu vārdu, kā nupat kā esmu uzrakstījis, man jau ir bijusi. Neko, domāju - jāpaskatās, ko tad šī funkcija dara, varbūt, ka to var bik pielabot un sanāk tieši tas, kas man vajadzīgs..

Liels bija mans pārsteigums, kad atklāju, ka abas šīs funkcijas ir ne vairāk, ne mazāk kā.. pilnīgi identiskas!!! Kaut ko tādu vēl savā programmētāja mūžā nebiju pieredzējis.. Nevis vienkārši dara vienu un to pašu, bet pilnīgi sintaktiksi identiskas - vienādi nosaukumi, atgriežamie tipi, vienāds parametra vārds, vienādi mainīgo nosaukumi, deklarēšanas secība, iezīmju nosaukumi, vienādas atkāpes no malas :D Tas man radīja iespaidu, ka es esmu kā determinēts automāts - ja reiz man ir vajadzīgs uzrakstīt funkciju kādam konkrētam mērķim, tad es to izdarīšu tieši vienā veidā :)

Šādi izskatās augstāk minētā funkcija:

function getExportItemByClassName(className:String):ExportItem;
 pointer ei:ExportItem;
begin;
 first ei:ExportItem else L0;
 label L1;
 attr ei.className==className else get_next;
 return ei;
 label get_next;
 next ei else L0;
 goto L1;
 label L0;
 setPointer ei=null;
 return ei;
end;

Ja tas Tevi, manu dārgo lasītāj, vēl neaizgrāba līdz sirds dziļumiem pilnībā, tad varu pateikt, ka vēlāk precīzi tāda paša situācija man sanāca ar vēl kādu citu funkciju.. Arī uzrakstīju precīzu kopiju jau esošai.. Gribi - tici, negribi - netici.. Iepriekš - nekad mūžā, tagad - divreiz vienā dienā.. Otra funkcija bija šāda:

function getExportString():String;
 pointer ei:ExportItem;
 var s:String;
 var z:String;
begin;
 setVar s="";
 first ei:ExportItem else L0;
 label L1;
 setVar z=ei.className;
 setVar s=s+z;
 setVar s=s+"(";
 setVar z=ei.instances;
 setVar s=s+z;
 setVar s=s+")";
 next ei else L0;
 goto L1;
 label L0;
 return s;
end;

Kaut kas fenomenāls!

 

Read Comments

Reply

No:
Lietotājvārds:
Parole:
Ievadi te 'qws' (liidzeklis pret spambotiem):
Temats:
Tematā HTML ir aizliegts
  
Ziņa:

Gandrīz jau aizmirsu pateikt – šis lietotājs ir ieslēdzis IP adrešu noglabāšanu. Operatore Nr. 65.