Guest User

Untitled

a guest
Oct 29th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Oz 1.45 KB | None | 0 0
  1. %Oppgave 7a)
  2.  
  3. fun {Length Ls}
  4.    case Ls
  5.    of nil then 0
  6.    [] _|Lr then 1 + {Length Lr}
  7.    end
  8. end
  9.  
  10. %Oppgave 7b)
  11.  
  12. fun {Take Xs N}
  13.    if N==0 then
  14.       nil
  15.    else
  16.       case Xs
  17.       of nil then nil
  18.       [] Ls|Xr then Ls|{Take Xr N-1}
  19.       end
  20.    end
  21. end
  22.  
  23. %Oppgave 7c)
  24.  
  25. fun {Drop Xs N}
  26.    if N==0 then
  27.       Xs
  28.    else
  29.       case Xs
  30.       of nil then nil
  31.       [] _|Xr then {Drop Xr N-1}
  32.       end
  33.    end
  34. end
  35.  
  36. %Oppgave 7d)
  37.  
  38. fun {Append Xs Ys}
  39.    case Xs
  40.    of nil then Ys
  41.    [] Ls|Xr then Ls|{Append Xr Ys}
  42.    end
  43. end
  44.  
  45. %Oppgave 7e)
  46.  
  47. fun {Member Xs Y}
  48.    if Xs == nil then
  49.       false
  50.    elseif Xs.1 == Y then
  51.       true
  52.    else
  53.       {Member Xs.2 Y}
  54.    end
  55. end
  56.  
  57. %Oppgave 7f)
  58.  
  59. fun {Position Xs Y}
  60.    if Xs.1 == Y then 1
  61.    else 1 + {Position Xs.2 Y}
  62.    end
  63. end
  64.  
  65. %Oppgave 8
  66.  
  67. fun {Tokenize L}
  68.    if L == nil then nil
  69.    elseif {Member ["local" "then" "in" "if" "end" "else" "elseif" "skip"] L.1} then "key("#L.1#")"|{Tokenize L.2}
  70.    elseif {Member ["+" "-" "/" "*"] L.1} then  "op("#L.1#")"|{Tokenize L.2}
  71.    elseif L.1 == "=" then "un("#L.1#")"|{Tokenize L.2}
  72.    elseif L.1 == "==" then "sammenligning(==)"|{Tokenize L.2}
  73.    elseif L.1.1 >= &A andthen L.1.1 =< &Z then "id("#L.1#")"|{Tokenize L.2}
  74.    elseif L.1.1 >= &a andthen L.1.1 =< &z orelse L.1.1 == "'" then "atom("#L.1#")"|{Tokenize L.2} %L.1.1 - Første bosktav i første ord
  75.    else 'Error, error! System will self destruct in 5 seconds'
  76.    end
  77. end
Add Comment
Please, Sign In to add comment