Advertisement
Guest User

pike code

a guest
Mar 11th, 2015
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pike 1.32 KB | None | 0 0
  1. #!/usr/bin/env pike
  2.  
  3. class string2id {
  4.         // map from string to identifier
  5.         mapping(string:int) string2id;
  6.  
  7.         // a number of assigned IDs
  8.         int counter;
  9.  
  10.         // constructor
  11.         void create()
  12.         {
  13.                 string2id = ([]); // initialise string2id to empty mapping
  14.                 counter = 0;
  15.         }
  16.  
  17.         // our main function
  18.         int get_id (string str)
  19.         {
  20.                 if (string2id[str] != 0)
  21.                         return string2id[str];
  22.  
  23.                 ++counter;
  24.                 string2id[str] = counter;
  25.                 return counter;
  26.         }
  27. };
  28.  
  29. string2id mapper;
  30.  
  31. void get_id_and_print (string feature)
  32. {
  33.         int id = mapper.get_id(feature);
  34.         write("Feature %s has an identifier %d\n", feature, id);
  35. }
  36.  
  37. int main (array(string) args)
  38. {
  39.         // creating an object of class string2id
  40.         mapper = string2id();
  41.  
  42.         // bag of words
  43.         get_id_and_print("apple");
  44.         get_id_and_print("table");
  45.         get_id_and_print("map");
  46.         get_id_and_print("picture");
  47.         get_id_and_print("table");
  48.         get_id_and_print("man");
  49.         get_id_and_print("apple");
  50.  
  51.         // very special features
  52.         get_id_and_print("providefor_between_company1_and_company2");
  53.  
  54.         return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement