Advertisement
oipus1

progetto f#

Nov 18th, 2014
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 1.52 KB | None | 0 0
  1. //PROGETTO
  2.  
  3. //qualora dovesse servire a mr Buso, converte una stringa in una char list
  4. let string_to_list (s : string) = s.ToCharArray() |> Array.toList
  5.  
  6. let rec separaprogram (x : char) (xs : char list) : string  =
  7.     match xs with
  8.     [] ->""
  9.     | z::zs -> if z = x
  10.                then  ""
  11.                else  string z + separaprogram x zs;;
  12.  
  13. let rec avantiprogram (x : char) (xs : char list) : char list =
  14.     match xs with
  15.     []->[]
  16.     |z::zs -> if z = x
  17.               then  zs
  18.               else  avantiprogram x zs
  19.               ;;
  20.  
  21. let rec splitprogram (x : char) (xs : char list) : _ list =
  22. // serve per convertire ogni comando di program in una lista di contenente l'istruzione e i due argomenti =  ["mov"; "reg1", "[2]"]
  23.     match xs with
  24.     [] -> []
  25.     | z::zs ->if z=x
  26.               then splitprogram x (avantiprogram x xs)
  27.               else [separaprogram x xs] @ splitprogram x (avantiprogram x xs)
  28.             //else [separaprogram x xs] @ string_to_list (splitprogram x (avantiprogram x xs)) NON FUNZIONA, dovrebbe concatenare una string list a una char list (però potrei usarlo su arg1 e arg2)
  29.     ;;
  30.  
  31. //queste istruzioni servono per estrarre istruzioni, arg1, arg2 dalla stringa di program, ad esempio istruzione="mov" , arg1="reg1" , arg2="[2]"
  32. let rec estrai (x : string list) (quale : int): string=
  33.     match x with    
  34.     x::xs -> if quale=0 then x
  35.              else estrai x (quale-1)
  36. ;;
  37.  
  38. let istruzione = estrai x 0;;
  39.  
  40. let arg1 = estrai x 1;;
  41.  
  42. let arg2 = estrai x 2;;
  43.  
  44.  
  45.  
  46. ;;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement