如何撰写bool返回函数

时间:2017-09-19 16:50:46

标签: f# function-composition

我有几个带签名view.py def create_stuff(request): if request.method == 'POST': form = FileFieldForm(request.POST, request.FILES) files = request.FILES.getlist('stuff_image') if form.is_valid(): for f in files: form.save() return redirect('list-stuff') else: form = FileFieldForm() return render(request, 'stuffapp/create_stuff.html', {'form': form}) 的过滤函数。我想创建一个组合过滤器,它是AND不同的过滤器。我知道我可以这样做:

'a -> bool

是否有任何更简洁方式直接撰写函数而不完全应用它们(例如从let fCombined x = f1 x && f2 x && f3 x 的定义中删除x)?

(我知道还有其他方法可以使用fCombined,例如使用bool函数并使用'a -> 'a option编写它们,但这几乎不多简洁。)

1 个答案:

答案 0 :(得分:7)

如果你想失去参数x,你可以让自己成为一个特殊的算子:

let (&&.) f g x = f x && g x

let fCombined = f1 &&. f2 &&. f3

但我不认为这是值得担心的事情。争论完全没问题。