Я попытался создать функцию, которая принимает два целых числа a, b в качестве входных данных и возвращает 5, если a = 1 b = 2 и 6 в противном случае. Вот что я сделал:
let examplef (a:int), (b:int)=
match a,b with
|1,2 -> 5
|_,_->6;;
Это даетошибка: «Дискриминатор шаблона« examplef »не определен».
Я задаю этот вопрос из-за ошибки в этом коде:
type Team = string
type Goals = Goals of int
type Points = Points of int
type Fixture = Team * Team
type Result = (Team * Goals) * (Team * Goals)
type Table = Map<Team,Points>
let league =["Chelsea"; "Spurs"; "Liverpool"; "ManCity"; "ManUnited"; "Arsenal"; "Everton"; "Leicester"]
let pointsMade (a: Result)=
match a with
|((b,Goals bg),(c,Goals cg))-> if b<c then ((b,Points 0),(c, Points 3))
elif b=c then ((b,Points 1),(c,Points 1))
else ((b, Points 3),(c, Points 0))
При попытке определитьследующая функция:
let updateTable (t:Table, r: Result)=
let pointmade = pointsMade r
match pointmade with
|((f,Points s),(f1,Points s1))-> match Map.tryFind f t Map.tryFind f1 t with
|None, None -> t
|Some Points x, Some Points y ->t .Add (f, Points s+x1) .Add(f1, Points s1+y1)
При наведении курсора мыши на первый «Map.tryFind ft» он говорит: «Это значение не является функцией и не может быть применено. Также при t .Add (f, Points s+x1) .Add(f1, Points s1+y1)
возникает ошибкав нем говорится: «Последовательные аргументы должны быть разделены пробелом и кортежами, а аргументы, включающие функции или приложения методов, должны быть заключены в скобки». Пожалуйста, помогите