Hash from two arrays

From Rosetta Code
Revision as of 04:32, 3 September 2007 by rosettacode>RrsVbp

i ll say a little prayer belle aperte gardner john www i r a terrorismo sperma femminile acer 32 teach you childres millyd abbraccio campari braun cruzer 2865 polar f2 eizo tft 19 l778 mapa mentales usb isdn ta driver il management nell era della connessione counting crows formato a3 stampante laser colori lettore mp3 fm mmc kodak dx7590 zoom easyshare albergo auckland nassirya luna e stelle usb motorola pc 220 sinfonia 40 mozart image cucina componibile giuseppe martoni parques nacionales de reserva del peru you touch my tra fifa footbal 2004 light house of family scooty doesn t know schiav prova di tecnica e organizzazione aziend frankfurt an der oder foto dei culi piu trans flash e1000 orgoglio napoletano se stiamo insieme le parole di girasole di giorgia voglio fare sesso grotta frasassi photo hard disk arriva wonder woman zoom 90 calcio giochi di sala gochi 200 rs dual voltage 128 rx v450 shemale cum trust protector 600 liftiba parola marina arrebatados wwwregione lazio it i primi turbamenti fuck u right back schiamazzi notturni trasparenze intimo plextor 48x bonstetten charles victor de giochi miniclip auto metano occasione fodere sedili tour 2004 raf conversazioni erotiche biagio antonacci midi three by rambert rambert dance company berluska happy days sister acr registratori dvd vcr finalmente le due torri sesso da vedere tutto per inculare oakley a wire 2 0 auto noleggio cosenza fujifilm z1 farinata ricetta per fare quiz patentino rivoluzione industriale scoperte calendario porcone di questo anno hp deskjet 3820 amd sempron 2500 gallo piccolo uomo the machine cameron dias porta per doccia dayse brucieri weisse elster le piu belle derbi claudia marsani valentino ken russell www irfo it dv rsmmc dv 512 batteria a1000 lasciami viva padre figlia testi fiorella mannoia dvp ns 32 nero clip raggae holding out for a hero bonnie tyler incontri trans davis modem linux sex fto tv e wifi kenwood kit cinema 4 3 videoproiettori 1500 ansi lumen roberto mariani rescue dawn palmari barcode www regionecampania stampante hp 450 tvc sony plasma motore ricerca posizionamenti blank cds la forza della vita dvd recorder 80gb tommy v compilation lugo (ravenna) execelsior pentium 3 4 a marechiaro occhiali da sole dolce e gabbana ps2 iso last minute rodi la fidanzata di mio marito fiat stilo multiwagon jtd teoria e tecnica rifiuti testo carmelo zappulla software contabilita semplificata zoom nikkor the doors film fells like home toner ricoh cl1000n pamela cartoni sex machine batterie sony v1 iscrizione registro moto d epoca cover platinum collection mina pescia big clarence foto mogli paradiso beach campionato di calcio tedesco kit gps route 66 leone di lernia accessori per doccia facciolini www mexxico com memoria ram samsung 512 festa arma carabiniere cnc usati foro emanuele filiberto smallvill erbe letras eco der core manualidades calde notti destate trova cellulare e palmare gps gprs image styles eternita delirium tremens duran duran sunrise calenda maia ceramiche dolomite colombari it decreto legislativo 303 91 d a b autoradio affinita nomi teh power of love la dc52c noi no scorte nautica gommoni agarum 99eyes com gnr toronto sun com el chad hard disk usb 500gb amilo 1 6 centrino i storm modem atlantis land embalaje smash hit canon pixma ip3000 le vibrazioni testi canzoni elenco presidenti usa nef gli appuntamenti nintendo per il nuovo anno hard disck telecomando arab film corse dei cavalii valente vitantonio hard disc esterno www fichet it

Task
Hash from two arrays
You are encouraged to solve this task according to the task description, using any language you may know.

Using two Arrays of equal length, create a Hash object where the elements from on array (the keys) are linked to the elements of the other (the values)

Ada

Compiler: GNAT GPL 2007

with Ada.Strings.Hash;
with Ada.Containers.Hashed_Maps;
with Ada.Text_Io;
with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;

procedure Hash_Map_Test is
   function Equivalent_Key (Left, Right : Unbounded_String) return Boolean is
   begin
      return Left = Right;
   end Equivalent_Key;
  
   function Hash_Func(Key : Unbounded_String) return Ada.Containers.Hash_Type is
   begin
      return Ada.Strings.Hash(To_String(Key));
   end Hash_Func;
  
   package My_Hash is new Ada.Containers.Hashed_Maps(Key_Type => Unbounded_String,
      Element_Type => Unbounded_String,
      Hash => Hash_Func,
      Equivalent_Keys => Equivalent_Key);
     
   type String_Array is array(Positive range <>) of Unbounded_String;
     
   Hash : My_Hash.Map;
   Key_List : String_Array := (To_Unbounded_String("foo"), 
      To_Unbounded_String("bar"),
      To_Unbounded_String("val"));
     
   Element_List : String_Array := (To_Unbounded_String("little"), 
      To_Unbounded_String("miss"), 
      To_Unbounded_String("muffet"));
     
begin
   for I in Key_List'range loop
      Hash.Insert(Key => (Key_List(I)),
         New_Item => (Element_List(I)));
   end loop;
   for I in Key_List'range loop
      Ada.Text_Io.Put_Line(To_String(Key_List(I))