问题标签 [maybe]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Maybes 是 scala 的好模式吗?
一段时间以来,我一直在努力将 scala 与可能返回 null 的 java 方法集成。我想出了以下实用程序,它有很大帮助:
我对这个解决方案有几个问题:
- 是否有更好或更标准的模式可供使用?
- 我是在复制已经存在的东西吗?
- 这个功能有隐藏的陷阱吗?
haskell - Haskell 映射返回一个单子
Data.Map 和 Data.IntMap 中的查找函数当前返回带有类型签名的 Maybe 包装的值
它曾经有更一般的类型
我意识到前者可能会减少对额外类型规范的需求,但后者会使其更加通用并允许在列表推导中使用查找。有什么方法可以用新版本模仿这种行为,还是我必须使用旧版本的库?
haskell - 在 F# 中实现 Haskell-MaybeMonad - 我们如何才能变得如此懒惰?
我们正在尝试在 F# 中从http://www.haskell.org/all_about_monads/html/maybemonad.html构建 Haskell-MaybeMonad 示例。
这个想法是在两个字典中搜索一个邮件地址。如果两个查找之一返回结果,我们将查看第三个。
问题是即使第一次返回结果,我们也会执行第二次查找。Haskell 的好处就在这里,它评估惰性。现在我们在 F# 中寻找类似的东西。我们尝试了以下方法,但它看起来很难看,似乎打破了在构建器中封装可能逻辑的想法:
有更好的解决方案吗?
问候,叉子
types - Haskell - 使用 Just or no 只是有所作为,但我不知道为什么
我在“Real World Haskell”一书中找到了这样的代码,p68
我的问题是:Just
数据构造函数做了什么工作?当我删除它时,我会收到类似的错误消息
但是当我尝试比较“Just”和“No Just”版本之间的类型差异时:
那么这里的关键点是什么?这是否意味着当我在节点中放置一个带有 type 的 var 时a
,该函数不会输出一个带有 type 的节点a
,所以会出错?
haskell - 对包含“Just”的 Maybe 返回进行操作
我有一个返回类型为的函数Maybe ([(Int,Int)],(Int,Int))
我想从另一个函数调用它并对数据执行操作。
但是,返回值包含在Just
. 第二种方法需要([(Int,Int)],(Int,Int))
,因此不会接受Just ([(Int,Int)],(Int,Int))
。
Just
在应用第二种方法之前,有没有办法可以修剪?
我不完全理解Just
within的使用Maybe
——但是,有人告诉我第一个 Method 的返回类型必须是Maybe
.
haskell - 在 Haskell 中使用 Maybe 类型
我正在尝试在 Haskell 中使用 Maybe 类型。我查找了返回可能的键值元组。如何访问由 Maybe 包装的数据?例如,我想将 Maybe 包含的整数与另一个整数相加。
java - Haskell 中的 undefined 和 Java 中的 null 有什么区别?
两者都是类型是所有类型(无人居住)的交集的术语。两者都可以在代码中传递而不会失败,直到尝试评估它们。我能看到的唯一区别是,在 Java 中,有一个漏洞允许null
对一个操作进行评估,即引用相等比较 ( ==
)——而在 Haskellundefined
中,根本无法在不抛出异常的情况下进行评估。这是唯一的区别吗?
编辑
对于这个问题,我真正想要解决的是,为什么null
在 Java 中包含这样一个明显糟糕的决定,以及 Haskell 是如何逃避它的?在我看来,真正的问题是你可以做一些有用的事情null
,即你可以检查它是否为空。因为您可以这样做,所以在代码中传递空值并让它们指示“无结果”而不是“此程序中存在逻辑错误”已成为标准约定。而在 Haskell 中,没有办法检查一个术语是否在不评估它的情况下评估到底部并且程序爆炸,所以它永远不能以这种方式使用来表示“没有结果”。相反,人们被迫使用类似Maybe
.
抱歉,如果我似乎对“评估”这个词玩得太快了……我试图在这里做一个类比,但很难准确地表达出来。我想这表明这个类比是不精确的。
return-value - 如何在 Haskell 中获取 Maybe 的值
我对 Haskell 比较陌生,并开始阅读“Real World Haskell”。
我只是偶然发现了 Maybe 类型,并且有一个关于如何从Just 1
例如接收实际值的问题。
我写了以下代码:
如果我使用,这很好用:
但是,例如,如果我将 1 更改为 String 它将不起作用。
我想我知道为什么:因为eliminate
必须返回一种类型,在这种情况下,就是一个Int
. 但是我该如何改变eliminate
以至少处理字符串(或者可能处理所有类型)?
haskell - Haskell:catMaybe 用于 Data.Set?
您将如何为 Data.Set 实现 catMaybes ?
我想出了:
然后我得到以下
functional-programming - 为什么在 Clojure 中对 Maybe/Option 的使用不那么普遍?
尽管 Clojure 如此强调函数范式,为什么不使用Maybe
/ Option
monad 来表示可选值?在 Scala 中使用Option
非常普遍,这是一种我经常使用的函数式编程语言。