功能编程中的一种设计方法是使非法国家无法代表.我总是看到这是通过类型的结构来完成的,但类型的价值呢?
如果我有一个名为Email的字符串怎么办?我只希望它保留一个有效的电子邮件地址(针对某些正则表达式进行检查)?如何以功能方式(不使用OOP)执行此操作?
Suave.Json.mapJson 将输入JSON映射到函数中的对象,然后将函数的输出映射到JSON.
问题是我对它映射到我的函数的方式很满意,但是我需要返回一个json字符串响应,而不是让我将输出序列化为JSON.我怎样才能做到这一点?
目前我的输出序列化了两次.我的代码到目前为止:
let executeQuery : Query -> string = //Query is my deserialised json input, the return value is a json string
let app = POST >=> path "/graphql" >=> Json.mapJson executeQuery >=> setMimeType "application/json; charset=utf-8"
startWebServer defaultConfig app
Run Code Online (Sandbox Code Playgroud) 对于某些页面(并非所有页面),我的前提是:
---
top-navigation:
order: 2
---
Run Code Online (Sandbox Code Playgroud)
使用液体我想过滤所有具有top-navigation对象和排序的网站页面top-navigation.order.
我正在尝试,sort:'top-navigation.order'但这是一个例外undefined method [] for nil:NilClass.我试过,where:"top-navigation", true但它不等于真正的价值观.
如何过滤包含top-navigation然后排序的页面?
此 F# 代码无法编译:
let DoubleString (str : string) = str + str
let ExampleSetString (str : string byref) =
async {
str <- DoubleString str
return 1
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息str <- DoubleString str:
byref 类型变量“str”的使用方式无效。Byref 不能被闭包捕获或传递给内部函数
我必须采用 byref 变量,将其传递到计算表达式中的一些纯函数中,然后设置此 byref 变量的值。我怎样才能做到这一点?