我正在研究clojure和Scala之间的互操作。由于java本身现在有lambda,所以我想在数据和如何将函数应用到集合之间进行一个概括
Clojure.lang.IFN
并概括了Clojure.lang.ISEQ
Scala.Function
并概括了Scala.collection.Traversable
java.util.function.function
并概括了java.util.stream.stream
问题:
(map (scala-fn +)
[1 2 3]
(scala-seq [1 2 3])
(.stream [1 2 3]))
=> (scala-seq [3 6 9])
Clojure、Scala和Java中都有这样的操作:获取集合、将函数应用到该集合并返回新的集合。
我更熟悉clojure,所以有类似的操作:
(into {} [[:a 1] [:b 2]]) => {:a 1 :b 2}
该功能看起来如下所示:
(into {} (scala-list [:a 1] [:b 2])) => {:a 1 :b 2}
(into (scala-map) [[:a 1] [:b 2]]) => (scala-map :a 1 :b 2)
(concat (scala-list 1 2) [3 4]) => (scala-list 1 2 3 4)
(concat [1 2] (scala-list 3 4)) => (1 2 3 4) ;lazy seq
(map + [1 2] (scala-list 3 4)) => [4 6]
(map (scala-fn +) [1 2] (scala-list 3 4)) => [4 6]
f:x->y
都是通用的。我只能给你哈斯克尔的答案,因为我不会说任何其他语言。然而,在我看来,您似乎主要是在寻找一种将输入自动转换为函数的方法。这似乎与单子无关。
(concat (scala-list 1 2) [3 4]) => (scala-list 1 2 3 4)
如果我把它翻译成Haskell,我会给它一个像这样的类型
concat :: (IsList l1, IsList l2) => l1 elem -> l2 elem -> [elem]
其中,ToList是一个类型类,它将把这个容器转换成一个列表
class IsListOf a where
toList :: a elem -> [elem]
(map + [1 2] (scala-list 3 4)) => [4 6]
zipWith :: (IsList l1, IsList l2) => (a -> b -> c) -> l1 a -> l2 b -> [c]
zipWith :: (IsList l1, IsList l2, Is2Function f) => f a b c -> l1 a -> l2 b -> [c]
class Is2Function f where
toFunction :: f a b c -> a -> b -> c
本文向大家介绍topic的分区数可不可以增加?如果可以怎么增加?如果不可以,那又是为什么?相关面试题,主要包含被问及topic的分区数可不可以增加?如果可以怎么增加?如果不可以,那又是为什么?时的应答技巧和注意事项,需要的朋友参考一下 可以增加 bin/kafka-topics.sh --zookeeper localhost:2181/kafka --alter --topic topic-co
本文向大家介绍topic的分区数可不可以减少?如果可以怎么减少?如果不可以,那又是为什么?相关面试题,主要包含被问及topic的分区数可不可以减少?如果可以怎么减少?如果不可以,那又是为什么?时的应答技巧和注意事项,需要的朋友参考一下 不可以减少,被删除的分区数据难以处理。
做对了"。事实证明,可以用来表示任何类似ListT-dod-right的东西。引用加布里埃尔·冈萨雷斯的话: 请注意,您可以仅使用变压器依赖项构建任何(不仅仅是管道中的那个)。例如,下面是如何实现: 这将在那里键入check作为any,并为所有人做正确的事情。 所以我的问题是:对于管道的消费者部分,是否有一个对偶到和到? 要求: 从不使用,只返回(或从不返回),但使用的管道可以表示为“双重到列表”
我有这样一段数据: 我想编写一个函数,该函数最终的返回结果为: ((职位 = 1 or 职位 = 2 or 职位 = 3) or (职级 != a or 职级 != b)) and (职位 = cc) 目前我用递归没写出来
我是新来的Spring Web通量/Reactor核心,并试图执行以下功能: > 如果返回用户,则返回“用户”类型的响应实体。如果为空,则返回“字符串”类型的响应实体 以下代码给出了一个类型错误,因为. defaultIf空()期望类型为user的响应实体。您能建议正确的运算符/方法来实现此功能吗?
我使用下面的代码来查找反射中的类成员是原语和某个对象,我的问题是有一种方法来识别字段是否是类型原语、对象、类引用,因为我想根据类型调用特定的方法。例如,如果field是原语,则调用HandleErimition,如果field是其他类型引用(在下面的示例中是SalesOrderItemPK,PrimaryKey;),则调用方法handleClassReferance等 只是为了理解,我需要获得类,