- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Haskell 中发现了一个有趣的库,名为 Scrap Your Boilerplate基于paper by Simon Peyton Jones这似乎是一种有效的方法,可以用函数式编程语言编写可以更新大型、深层嵌套数据结构的代码。它启用如下代码:
incS :: Float -> Salary -> Salary
incS k (S s) = S (s * (1+k))
increase :: Float -> Company -> Company
increase k = everywhere (mkT (incS k))
这可以有效地将潜在庞大且复杂的公司数据结构中每个人的工资提高固定比例 k。
是否有等效的库或方法可以在 Clojure 中实现相同类型的编程风格?
例如,我如何编写与上面使用的示例等效的 Clojure:
(defn increase [company k]
(everywhere-in company (transform-map-values :salary #(* % (+ 1 k))))
最佳答案
Clojure 中与此最接近的可能是“in”函数(assoc-in、update-in、dissoc-in)。
这些函数允许您在 clojure 中进行深度嵌套、精确的更改。 Haskell 中没有与这些函数等效的函数,因为它们严重依赖动态类型。
关于generics - Clojure 相当于 Haskell 的 "Scrap Your Boilerplate"(SYB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7376572/
“java.lang.IllegalArgumentException:报废或附加的 View 可能不会被回收。因为 Scrap:false isAttached:true” 异常随机出现,并不频繁。
我看到人们谈论在 Haskell 中废弃你的样板和泛型编程。这些术语是什么意思?我什么时候想使用 Scrap Your Boilerplate,我该如何使用它? 最佳答案 通常在对复杂数据类型进行转换
我是 Haskell 新手,所以我想弄清楚如何进行树遍历。 这是我在几篇论文中看到的 Company 示例(略有改动) data Company = C [Dept] d
我仍然在学习网络报废,但是我正在编写一个代码来抓取一个特定的网站并访问它的内容:。“https://tenders.etimad.sa/Qualification/QualificationsForV
我仍然在学习网络报废,但是我正在编写一个代码来抓取一个特定的网站并访问它的内容:。“https://tenders.etimad.sa/Qualification/QualificationsForV
2003年Scrap Your Boilerplate paper由 Laemmel 和 SPJ 在第 3 页有一个代码片段 mkT :: (Typeable a, Typeable b) => (b
使用 SYB 对树仅应用一次转换(而不是各处)的最佳方法是什么?例如,在下面的简化表达式中,有多个 Var "x" 实例,我只想用 Var "y" 替换第一个实例。 数据 Exp = 变量字符串 |瓦
我在 Haskell 中发现了一个有趣的库,名为 Scrap Your Boilerplate基于paper by Simon Peyton Jones这似乎是一种有效的方法,可以用函数式编程语言编写
我正在使用从 Android 网站获取的 RecyclerView 的简单实现,使用 StaggeredGridLayoutManager 并且我不断收到导致我的应用程序崩溃的错误: java.lan
在此处输入图像描述。我有来自图像的超文本标记语言,但我不能有来自tbody的数据。TBody是子,其组织数据是。。我找到了一些获取html表的脚本,但它们都出现了一些错误。。与此类似,Google A
如何使用 SYB(或其他一些 Haskell 泛型包)在 Reader 中编写转换使用 local 的 monad修改子计算的环境? GenericM 的类型和 everywhereM (使用 a -
当我快速滚动列表时,所有 recyclerviews 有时会崩溃,因为我已经更新以支持 lib 25.0.0。没有布局动画师,一切正常,支持 lib notifyDataSetChanged 调用。h
当我滚动我的 recyclerview 太快时,我遇到了以下崩溃 java.lang.IllegalArgumentException: Scrapped or attached views may
FATAL EXCEPTION: main Process: com.zipato.android.client.v2, PID: 24966 java.lang.IllegalArgumentExc
我不断收到 java.lang.IllegalArgumentException:报废或附加的 View 可能无法回收。 isScrap:false isAttached:true 当 Fragmen
我是一名优秀的程序员,十分优秀!