.net - 返回一个所有字符都大写的字符串
问题描述
我正在尝试编写一个函数,该函数使用正向组合返回一个所有字符均为大写的字符串。
这是我没有前向组合的代码:
let toUpper s = String.map System.Char.ToUpper s
这是我使用前向组合的尝试:
let toUpper2 s = s >> Seq.map System.Char.ToUpper >> Seq.map string >> String.concat ""
我让它与管道前锋一起工作,但不能让它与前锋组合一起工作。任何帮助表示赞赏!
解决方案
这两个是等价的:
let toUpper1 = Seq.map System.Char.ToUpper >> Seq.map string >> String.concat ""
let toUpper2 s = s |> Seq.map System.Char.ToUpper |> Seq.map string |> String.concat ""
但有一个问题toUpper1
。它是通用的,会导致 ML 语言出现问题:
typecheck:值限制。值 'toUpper1' 已被推断为具有泛型类型 val toUpper1 : ('_a -> string) when '_a :> seq 要么使 'toUpper1' 的参数显式,或者,如果你不打算让它是通用的,添加类型注释。
所以它需要一个类型注释:
let toUpper1 : string -> string = Seq.map System.Char.ToUpper >> Seq.map string >> String.concat ""
推荐阅读
- active-directory - Windows 域帐户被锁定
- c++ - 设置给予额外元素
- reactjs - 错误数组正在返回所有映射的错误
- python - 保存和加载权重和优化器状态以进行再训练
- r - 在 rstudio 中创建一个分支以与现有存储库同步
- javascript - 重用包含上下文的组件
- javascript - 如果对象数组不包含具有此 ID 的对象,如何返回 true?
- optaplanner - Optaplanner 在安排设备时可以考虑某些优先级吗?
- scala - Spark 与 AWS Elastic Search 集成 - 获取 - 没有正确设置的云实例 'es.nodes.wan.only' 错误
- node.js - Heroku React 应用程序在开发中工作,部署,但不工作