小编Tom*_*ert的帖子

我什么时候使用像Paxos这样的共识算法vs使用类似矢量时钟的东西?

我一直在阅读很多关于保证分布式系统中节点之间一致性的不同策略,但是我在确定何时使用哪种算法时遇到了一些麻烦.

使用什么样的系统我会使用像矢量时钟这样的东西?哪个系统适合使用像Paxos这样的东西?两者是相互排斥的吗?

theory distributed distributed-computing

17
推荐指数
1
解决办法
1426
查看次数

"无法匹配类型`可能'与'IO'预期类型:IO字符串实际类型:可能字符串"在Haskell中

我试图把我的头包裹在Monads周围,并且觉得如果我能解释为什么这不能编译,我会有更好的理解.

module Main where
import Data.Maybe
import System.Environment

myFunc :: String-> Maybe String
myFunc x = Just x

main :: IO ()
main = myFunc "yo" >>= putStrLn 
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

blah.hs:9:10:
    Couldn't match type `Maybe' with `IO'
    Expected type: IO String
      Actual type: Maybe String
    In the return type of a call of `myFunc'
    In the first argument of `(>>=)', namely `myFunc "yo"'
    In the expression: myFunc "yo" >>= putStrLn
Run Code Online (Sandbox Code Playgroud)

我意识到问题在于我正在尝试将a Maybe与a匹配IO,但我并不完全确定如何将我的Maybe'd变量转换为IO.任何帮助将不胜感激!

monads haskell maybe

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

在erlang中,与元素匹配的元组模式是个好主意吗?

我是Erlang的新手,我一直在阅读一些声称原子不是垃圾收集的文档.这一切都很好,但随后又提出了一个更大的问题:将它们用作模式匹配的"元组标签"是一个好主意吗?如果我有一个使用相对较多的Erlang应用程序,以及这样的函数:

-module(geometry).
-export([area/1]).
area({rectangle, Width, Ht}) -> Width * Ht;
area({square, X}) -> X * X;
area({circle, R}) -> 3.14159 * R * R.
Run Code Online (Sandbox Code Playgroud)

这可能会导致我的VM崩溃吗?如果该area函数运行了三百万次,那么因为矩形,正方形和圆形是原子而不会使我的Erlang VM崩溃吗?

erlang

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