小编Dan*_*oul的帖子

如何让这段Haskell代码更简洁?

作为练习,我正在尝试为Haskell中的赌场游戏"战争"编写模拟.

http://en.wikipedia.org/wiki/Casino_war

这是一个非常简单的游戏,有一些规则.用我所知道的任何命令式语言编写一个非常简单的问题,但是我很难在Haskell中编写它.

我到目前为止的代码:

 -- Simulation for the Casino War

import System.Random
import Data.Map

-------------------------------------------------------------------------------
-- stolen from the internet

fisherYatesStep :: RandomGen g => (Map Int a, g) -> (Int, a) -> (Map Int a, g)
fisherYatesStep (m, gen) (i, x) = ((insert j x . insert i (m ! j)) m, gen')
    where
        (j, gen') = randomR (0, i) gen

fisherYates :: RandomGen g => g -> [a] -> ([a], g)
fisherYates gen [] = ([], gen)
fisherYates …
Run Code Online (Sandbox Code Playgroud)

algorithm haskell functional-programming

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

链接到页面上的位置,没有 ID 或名称

我希望链接到第三方网站上包含大量内容的页面,但希望读者从那里开始阅读。是的,我可以明确告诉他们,但有时并不总是理想的。如果我在一般位置找不到任何具有 name 或 id 属性的元素,还有其他方法吗?谢谢!

html href hyperlink

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

计算满足if语句的元素并在Python中的列表理解中使用此计数器?

例如,我们有任务,在列表中选择前10个偶数.

这可以通过简单的for循环轻松完成:

i = 0
list_even = []
for x in range(30):
    if x % 2 == 0 and i < 10:
        list_even.append(x)
        i += 1
print(list_even)    # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] - correct!
Run Code Online (Sandbox Code Playgroud)

怎么可能与列表理解相同?

我试图使用枚举,但它计算所有元素,不仅满足if语句,所以我不能使用枚举中的索引作为计数器.

list_even = [x for i, x in enumerate(range(30)) if x % 2 == 0 and i < 10]
print(list_even)    # [0, 2, 4, 6, 8] - incorrect!
Run Code Online (Sandbox Code Playgroud)

我描述的任务只是示例 - 我正在写关于列表推导的文章,并希望了解这类任务的细节和一般解决方案.

python if-statement list-comprehension list count

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