我有一个应用程序,它呈现钢琴表,因此我必须将一些乐谱概念抽象为记录结构。为了节省一些输入,我有时会将成员FromTuple
添加到某些记录类型中。
我还介绍了运算符!>
,它接受一个元组并返回适当的元组。
但我确实有以下问题:
FS0332:无法解决在此程序点或附近使用运算符'FromTuple'所固有的模糊性。考虑使用类型注释来解决歧义。
我无法找到错误的实际来源(我首先想到可能会在多种记录类型中定义/使用某些记录字段名称,但似乎并非如此)。
类型定义:
type xyz =
{
// some record fields
Field1 : int
Field2 : bool
Field3 : string * string
}
with
static member FromTuple (a, b, c) = { Field1 = a; Field2 = b; Field3 = c }
// more types defined like `xyz`
[<AutoOpen>]
module Globals =
let inline (!>) x = (^b : (static member FromTuple : ^a -> ^b) x)
故障线(在单独的文件中):
//ERROR
let my_xyz : xyz = !> (315, false, ("foo", "bar"))
答案 0 :(得分:5)
您的import time
number = 1000000001
count = 0
start = time.time()
while number > 1000000000 and number < 10000000000000:
for i in range(1, round(number/2 + 1)):
if (number / i).is_integer():
count += 1
if count > 1:
break
if count < 2:
print(str(number) + ' prime')
number = number + 1
count = 0
end = time.time()
print(end - start)
方法有三个不同的参数:xyz.FromTuple
,a: int
和b: bool
;相反,你需要它来取一个c: string * string
。通过将参数包装在另一组括号中来完成此操作:
int * bool * (string * string)