• #2楼 @1th 是啊,老板不给上班看书时间啊
    主要是上下班时间用电子书看。

  • #1楼 @hkliya 头条怎么玩,我还没玩过呢

  • 还是《从入门到放弃》系列更实用一些……

  • #3楼 @abbey 一下说到我的伤心处。我用MacType好几年了。前两天因为跟DockerToolbox 冲突,卸载了装新版本。
    结果发现公司IT policy 禁止写系统临时目录,导致装不上。
    现在逼得我都想要把工作机切换到Ubuntu了

  • 弄个中二之旅

  • Sure, it is evil. Sometime it is a necessary evil.

  • 同一个dojo session下又做了两次。
    使用fold

    factors_to_list t@(n, ps) p 
        | n `mod` p == 0 = (next_n, new_ps)
        | otherwise = t
        where (next_n, new_ps) = factors_to_list (n `div` p, ps ++ [p]) p
    
    factors :: Integer -> [Integer]
    factors n = snd (foldl factors_to_list (n, []) [2..n])

    缺点是数字较大时性能差,因为fold计算了整个小于n的数的列表。在这之前可能早已求出所有因子了。

    改为scanl 加 filter,利用Haskell惰性求值终止fold过程,性能与递归方式相当。

    no_more = ((==1) . fst)
    
    check_factor pair@(n, ps) p 
        | no_more pair = pair
        | p_is_factor = (new_n, more_ps)
        | n_is_prime = (1, ps ++ [n])
        | otherwise = pair
        where 
            (new_n, more_ps) = check_factor (n `div` p, ps ++ [p]) p
            p_is_factor = n `mod` p == 0
            n_is_prime = p * p > n 
    
    factors :: Integer -> [Integer]
    factors n = 
        let return_once_get_all_factors = snd . head . filter no_more
        in  return_once_get_all_factors (scanl check_factor (n, []) [2..])
  • 试试 quickrun

  • 我用 http://www.websequencediagrams.com/ 画时序图
    虽然不是Ascii的,手绘风格还是颇有Geek风的。
    如图:

    是用如下代码生成的:

    title Would you be my GF?
    Boy->Girl: Would U be my GF?
    note right of Girl: enigmatic and charming
    Girl->Boy: Guess
    note left of Boy: full of hope
    Boy->Girl: Yes!
    Girl->Boy: Try again
  • #3楼 @lvjian700 100%覆盖率,听起来就很可怕啊