小编Dai*_*san的帖子

Haskell中fromjust的理由

我正在努力学习Haskll,所以我在Haskell中尝试了Project Euler的问题26:http: //projecteuler.net/problem=26

我对这个问题的解决方案是这样的:

answer26 = answer26' 1000
answer26' n = snd $ maximum $ map (\x -> cycleLength x [1]) [2..n - 1]
    where
    cycleLength n (r:rs)
        | i /= Nothing      = (1 + fromJust i, n)
        | r < n             = cycleLength n $ (10*r):r:rs
        | otherwise         = cycleLength n $ (r `mod` n):r:rs
        where i = elemIndex r rs
Run Code Online (Sandbox Code Playgroud)

我意识到这不是最有效的算法,但看到它是天真的O(n ^ 3)(其中n = 1000)不是这样的问题.我关心的是,根据我对monad的理解,他们的主要特性之一是它们在某种意义上"标记"任何使用过monad的东西.功能"fromJust"似乎直接面对它.它为什么存在?另外,假设它的存在是合理的,我在上面的代码中使用它是否很好?

monads haskell maybe

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

Java的BigDecimal是否利用C++中的long double等硬件架构?

据我所知,C++中的长双重实际上利用了硬件架构(至少对于某些架构而言).Java中的BigDecimal是否为足够小的输入执行此操作?

java floating-point precision bigdecimal long-double

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