gpt4 book ai didi

clojure - 有反向映射功能吗?

转载 作者:行者123 更新时间:2023-12-02 14:30:09 24 4
gpt4 key购买 nike

在 clojure 中,您可以将函数映射到值序列。是否有一个内置函数可以将单个值作为参数映射到一系列函数?

(map inc [1 2 3 4])
; -> (2 3 4 5)

(reverse-map [inc dec str] 1)
; -> (2 0 "1")

(reverse-map [str namespace name] :foo/bar/baz)
; -> (":foo/bar/baz" "foo/bar" "baz")

最佳答案

有一个有点相似的juxt。它接受多个函数并返回一个函数,该函数将其参数传递给每个函数并返回一个返回值向量。所以:

> ((apply juxt [inc dec str]) 1)
[2 0 "1"]

主要区别在于它创建了一个向量,这当然是急切的(即不是惰性的)。原始的 map 创建了一个惰性的序列。

juxt 也适用于具有多个参数的函数:

> ((apply juxt [* / -]) 6 2)
[12 3 4]

关于clojure - 有反向映射功能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10044254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com