小编Ill*_*iax的帖子

如何在Haskell中从monad中取出一个值?

有没有办法从单子中取出"东西"?

我正在开发一款游戏,现在我正在尝试了解数据库.我发现happstack非常好,但我无法得到这个东西.

例如,我有这个功能(希望你熟悉happstack)

getAllThings :: MonadIO m => m [Thing]
getAllThings = do
            elems <- query GetThings
            return elems
Run Code Online (Sandbox Code Playgroud)

所以我明白了m [Things],但我不能在我的模型中使用它!例如

doSomeThingWithThings :: [Thing] -> Something
Run Code Online (Sandbox Code Playgroud)

我用Google搜索了一下,但我一无所获.

monads haskell

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

像哈克尔一样的Pygame?

我试图在Haskell编程游戏.我一直在为这个目的寻找游戏框架,但我发现了一些,我不能让它们工作:/.我需要的是pygames在python中提供的一些图像处理,如移动图像,使用布局将一个图像放在其他图像之上,以及这些基本的东西.你碰巧认识任何人吗?

haskell pygame image

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

Haskell随机生成器......如何使用更容易?

我遇到了与Haskell Random generator相关的问题.在大学里,我必须一直处理Java,所以现在我已经腐败了.我正在Haskell开发一款游戏,现在我面临的是"有机会做某事",这种机会需要像Int -> Bool.在Java中,我会做到的

new Random().nextInt(100) 
Run Code Online (Sandbox Code Playgroud)

问题解决了!在Haskell中,我必须在monad IO中选择一些东西或者使用种子.这些都不是我想要的.我真的不想在我的纯模型中使用IO monad,种子很难用,因为我每次都需要记住我的新种子......

有没有简单的像Java的随机?

random haskell

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

在Pharo中,我的类不应出现在浏览器中,甚至不应出现在Smalltalk全局中

我不希望我的新类出现在系统浏览器中,此外,我不认为它们应该出现在Smalltalk全局中.

默认情况下,类出现在浏览器和Smalltalk全局中.我怎么能改变呢?

smalltalk metaprogramming pharo

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

模拟webpack捆绑库上的fbasyncInit行为

我正在使用webpack构建一个针对浏览器的库.我真的想复制fbasyncinit行为而无需手动修改捆绑的库.

webpack在加载库本身后是否提供了调用函数的方法?

或者是否有其他替代捆绑包允许这样做?

对于那些不知道的人,window.fbasyncinit是完成加载时facebook sdk调用的函数,所以你编写了初始化facebook sdk的函数.

javascript webpack

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

声音lib haskell

我需要为haskell找到一个声音库.我已经按照haskell wiki http://www.haskell.org/haskellwiki/Sound_data_structures中提供的一些说明进行操作,但无法使用.我需要的是播放音频文件,无论其格式如何.我正在开发一款FunGen游戏,以及它的音乐时间.我可能有somo问题让他们工作,但我甚至不能播放一个简单的声音例子.我的大多数问题都是由于cabal安装,或者我无法找到任何共享的依赖.我正在使用Windows.

audio haskell

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

线程无限期阻塞 - Haskell - 酸状态

我担心酸状态产生到许多事件文件和检查点,用户"stepcut"告诉我有一个名为createArchive的解决方案实现了删除旧事件...问题是,当我使用它时,我得到这个错误:

<fileName.exe>: thread blocked indefinitely in an MVar operation
Run Code Online (Sandbox Code Playgroud)

我认为它是由于W7的权限,但是当我在"管理员"运行它,我不能在这里看到控制台,但这些事件的文件仍然存在,所以我认为它不工作.

如果我通过ghci运行代码,我没有收到错误,但它锁定了控制台,所以我需要CtrlC继续工作.

有人得到这个错误吗?

haskell acid

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

使用函数的acid-state-safeCopy

有数据类型时出现问题:

MyData = One Int | Two (Int -> Int) | Three | Four
Run Code Online (Sandbox Code Playgroud)

问题是,当我说

$(deriveSafeCopy 0 'base ''MyData)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

No instance for (SafeCopy (Int -> Int) )
   arising from the use of `getSafePut`
...
Run Code Online (Sandbox Code Playgroud)

所以我意识到SafeCopy可能不适用于功能......

我有麻烦吗?因为我无法改变MyData的模型....有没有办法做到这一点?

haskell acid

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

改变事件,pharo

是否可以监听类在更改时抛出的事件?我需要知道某些类(代码,变量等)在某些类中从系统浏览器中发生了变化.

pharo

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

ScalaTest自己的匹配器,使用单词而不是

所以一开始我就有了

def parseB(string : String)(implicit context : Context) : Float = parseAll(gexp, string).get.eval(context).left.get
Run Code Online (Sandbox Code Playgroud)

然后在测试中

implicit var context = Context()
parseB("False") should be(false)
parseB("False") should not be(true)
Run Code Online (Sandbox Code Playgroud)

然后我写了一个自定义匹配器

case class ReflectBooleanMatcher(value : Boolean)(implicit context : Context) extends Matcher[String] with ExpressionParser{
  def parseB(string : String) : Boolean = parseAll(gexp, string).get.eval(context).right.get
  def apply (string : String) : MatchResult = 
      MatchResult(parseB(string) == value, "", "")
}
Run Code Online (Sandbox Code Playgroud)

所以我的测试转向了

"False" should reflectBoolean(false)
Run Code Online (Sandbox Code Playgroud)

"False" should not reflectBoolean(true)
Run Code Online (Sandbox Code Playgroud)

休息 - 当然,我从来没有说它可以匹配负面.那怎么说呢?

scala scalatest

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

Laravel自定义数据库驱动程序

我知道有一种很好的方法来定义连接app/config/database.php.但我不认为有可用的驱动程序.

想象一下,我的数据库是从文件中读取的,就像一个txt.(是的!这是我的客户端数据库,有点).

所以在那个文件中,在我之前

'connections' => 
    'filedb' => array(
        'driver'    => 'what-should-i-put-here'
Run Code Online (Sandbox Code Playgroud)

我需要一个真正的司机!

目前它使用了一个txt基础数据库,但在未来我们将迁移到mysql,因此当前雄辩的实现将对我来说非常好.但是现在我想为我的txt db实现一个驱动程序,所以我现在可以完全使用eloquent.

laravel是否提供了实现自己的驱动程序的方法?在这两种情况下(真或假),您对此有何建议?

php database laravel eloquent laravel-5

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

GitlabCI在特定分支和手册上运行管道

所以我无法同时指定这两件事

在这些特定条件下进行构建/部署。

从特定分支b:开发并允许从Web 运行管道按钮运行任何分支。

香港专业教育学院试图添加两个条件,但这会建立非发展分支

my_build:
  stage: build
  only: 
    - develop
    - web
Run Code Online (Sandbox Code Playgroud)

如果我删除网站,它只能在开发分支上工作,但是我不允许从网站按钮运行作业

有人做到过吗?

gitlab-ci

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