我正在使用F#Canopy完成一些网络测试。我正在尝试使用或不使用字母创建和加载随机数,这并不重要,并使用它粘贴到我的网站。
我目前使用的代码是
let genRandomNumbers count =
let rnd = System.Random()
List.init count
let l = genRandomNumbers 1
"#CompanyName" << l()
#CompanyName
是我试图传递的元素的ID。现在我收到错误'表达式应该有类型字符串,但在这里它键入一个列表。
非常感谢任何帮助。
答案 0 :(得分:2)
canopy中的<<
运算符将一个字符串写入选择器(我没有使用它,但文档看起来很清楚),但是你的函数返回一个列表。如果你想随机字符串工作,你可以做这样的事情(没有经过测试的代码)
let randomNumString n = genRandomNumbers n |> List.map string |> List.reduce (+)
这将您的随机列表映射到字符串,然后使用第一个元素作为累加器种子将所有字符串连接在一起。你也可以做折叠
let randomNumString n = genRandomNumbers n
|> List.fold (fun acc i -> acc + (string i)) ""
全部放在一起
let rand = new System.Random()
let genRandomNumbers count = List.init count (fun _ -> rand.Next())
let randomNumString n = genRandomNumbers n |> List.map string |> List.reduce (+)
"#CompanyName" << (randomNumString 1)
一般情况下,F#不会为您做任何类型的促销活动。由于<<
运算符需要右侧的字符串,因此您需要以某种方式将列表映射到字符串。这意味着迭代每个元素,将数字转换为字符串,并将所有元素一起添加到一个最终字符串中。