2017-06-18 1 views
1

Logic:PMG erreur de syntaxe

eploy (liste constante)

if list is empty then 
    return: 
     0; 
else 
    return: 
     (first_element + constant*eploy(rest_of_the_elements, constant) 

J'ai écrit le code suivant:

fun eploy(xs, x1:int) = 
     if null xs 
     then (0) 
     else (x::xs') => x + x1*eploy(xs',x1) 

eploy([1,2],4); 

Répondre

2

Si vous voulez faire ltrage puis vous devez utiliser case:

fun eploy(xs, x1) = 
    case xs of 
     nil => 0 
    | x::xs' => x + x1*eploy(xs', x1) 

Vous pouvez également fusionner que dans la définition de la fonction par des clauses utilisant:

fun eploy(nil, x1) = 0 
    | eploy(x::xs', x1) = x + x1*eploy(xs', x1)