[mercury-users] Hash_table initialization
    Goncalo Jorge Coelho e Silva 
    l10454 at alunos.uevora.pt
       
    Wed Apr 30 10:31:00 AEST 2003
    
    
  
Hi,
 I tried to used hash_tables and
had a few problems regarding initialization.
 I am unsure whether I have to use predicates,
where I explicitly define the default size and
occupancy arguments, like in:
:- func new(hash_pred(K), int, float) = hash_table(K, V).
 I tried this code (which didn't compile ;) ):
:- import_module io.
:- pred main(io__state, io__state).
:- mode main(di, uo) is det.
%:- mode main(di, uo) is semidet.
%:- mode main(di, uo) is cc_multi.
:- pred seee(string, io__state, io__state).
:- mode seee(in, di, uo)is semidet.
:- implementation.
:- import_module string.
:- import_module hash_table.
%main -->
main(IO0,IO):-
        det_insert(hash_table(K, V), K, V) = MyHashTable(K, V),
        %set(hash_table(key, value), key, value) = HT,
        %set(HT, key, value) = hash_table(key, value),
        %set(hash_table(key, value), key, value) = hash_table(key, value),
        io__write_string("It's harder to see it.", IO0, IO).
Compilation result is: 
inter.m:019: In clause for predicate `inter:main/2':
inter.m:019:   warning: variable `MyHashTable' occurs only once in this
scope.
inter.m:019: In clause for predicate `inter:main/2':
inter.m:019:   in argument 1 of functor `det_insert/3':
inter.m:019:   error: undefined symbol `hashtable/2'.
inter.m:010: Error: no clauses for predicate `inter:seee/3'.
make: *** [run] Error 1
Do I need to use 'new(hash_pred(K),...)' ?
And how should I use it?
Thanks again.
Cheers,
Goncalo
--------------------------------------------------------------------------
mercury-users mailing list
post:  mercury-users at cs.mu.oz.au
administrative address: owner-mercury-users at cs.mu.oz.au
unsubscribe: Address: mercury-users-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-users-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------
    
    
More information about the users
mailing list