小编din*_*sim的帖子

foldr如何工作?

任何人都能解释一下如何foldr运作?

拿这些例子:

Prelude> foldr (-) 54 [10, 11]
53
Prelude> foldr (\x y -> (x+y)/2) 54 [12, 4, 10, 6]
12.0
Run Code Online (Sandbox Code Playgroud)

我对这些处决感到困惑.有什么建议?

haskell combinators fold

62
推荐指数
8
解决办法
5万
查看次数

什么是Java中的本机实现?

如果我们查看Java Object类,那么我们可以找到一些方法,如:

public native int hashCode()
protected native Object clone()
Run Code Online (Sandbox Code Playgroud)

这些本地人是什么?这些方法如何运作?

java java-native-interface

35
推荐指数
4
解决办法
2万
查看次数

更好地理解JVM

我想知道JVM的内部,它的执行方式以及重要的细节.你能为这个推荐任何资源或最佳书吗?

jvm

16
推荐指数
2
解决办法
5130
查看次数

功能语言与语言实现的观点有何不同

有一个全新的"函数式编程"范式,与程序式编程相比,需要彻底改变思维模式.它使用更高阶函数,纯度,monad等,我们通常在命令式和面向对象语言中看不到它们.

我的问题是这些语言的实现与命令式或面向对象语言的区别在于,例如,内存管理或内部指针等.

有一些函数语言在JVM之上运行.这是否意味着这些语言在内部像JVM上的其他语言一样工作?

lisp haskell functional-programming ml

13
推荐指数
2
解决办法
811
查看次数

Haskell太多的条款,任何替代建议

我在Haskell中是全新的,在编写小程序时,我通常最终会有太多where子句来检查函数中的很多东西,所以编写where子句或者还有其他好的替代方法是好的做法吗?

例如,在下面我的代码试图找出是否有二维表的每一行中的蚂蚁重复的元素,它的工作原理以及每一件事情是相同的功能内容,但我不满意的代码看起来如何,我觉得它更迫切接近问题的风格,所以我正在寻找有经验的人在那里的任何建议或想法.

noDups :: [[a]] -> Bool
noDups du = and (checkSu du)
       where
       checkDup []     = []
       checkDup (x:xs) = checkRow x ++ checkDup xs
             where
             checkRow []     = [] 
             checkRow (x:xs) = [x /= y | y <- xs] ++ checkRow xs
Run Code Online (Sandbox Code Playgroud)

再一次,这段代码只是为了说明一个问题,我正在寻找在功能风格中制定问题的方法.你的建议或文章,链接会很有帮助.

谢谢

haskell functional-programming

11
推荐指数
2
解决办法
3980
查看次数

物体识别的最佳工具

我想做一个关于对象识别的小项目,关于这个主题的任何工具或文献建议?

object-recognition

10
推荐指数
1
解决办法
3208
查看次数

用于函数式编程的lambda演算

在lambda演算中(λx.λy.λs.λz.xs(ysz))用于添加两个教会数字我们如何解释这一点,是否有任何好的资源用于函数式编程的lambda演算?非常感谢您的帮助

lambda functional-programming lambda-calculus

4
推荐指数
1
解决办法
946
查看次数

Haskell执行序列

任何人都可以帮我理解这段代码

solve s | s == 0 = Nothing
        | s == 1 = Just 1
        | otherwise = 
          check [solve (s-(x*2)) | x <- [1..9]]

 check x = case x of
           []           -> Nothing
           (Nothing:xs) -> check xs
           (x:xs)       -> x    
Run Code Online (Sandbox Code Playgroud)

当我试图用偶数值运行它时,为什么这会给堆栈溢出流量,并且在haskell中有什么方法我可以调试并查看正在运行的程序的实际值,就像我们在eclipse中一样?

谢谢

haskell

2
推荐指数
1
解决办法
498
查看次数

在Haskell中反转二进制数

我已经为二进制数定义了数据类型,如下所示

data Bin = Nil | O Bin | I Bin 
           deriving (Show, Eq)
Run Code Online (Sandbox Code Playgroud)

我想定义一个函数,reverse :: Bin -> Bin以便当我给出输入时

reverse (I (O (I (I Nil))))我应该得到 I (I (O (I Nil)))那个意味着作为输入反转的输出,任何身体请告诉我如何能做到这一点?

haskell

2
推荐指数
2
解决办法
1474
查看次数