小编Ryo*_*Oka的帖子

列表的索引内容([a] - > [(Int,a)])

我想要一个接收列表并索引所有内容的函数:indexed :: [a] -> [(Int, a)].或者返回的值可以是Monad,只要它包含原始列表的索引值即可.

我认为在处理每个元素时我需要StateT来临时记住和索引索引号,但我不熟悉Monad变换器的东西,我需要一些帮助来编写函数.

我相信它看起来与此相似(这肯定不起作用):

indexed ns = do
  n <- ns
  i <- get
  put (i + 1)
  return (i, n)
Run Code Online (Sandbox Code Playgroud)

你会怎么写的?

monads haskell

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

指定无限循环的毫秒速度

我的主函数有一个无限循环,我想每100毫秒执行一次它的循环.我知道它是由一些并发或并行方法完成的,但我以前从未做过这样的事情,甚至不知道从哪里开始.你会如何实现这样的功能?

concurrency haskell

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

隐藏包二进制-0.7.5.0?

我收到此错误:

Could not find module ‘Data.Binary’
It is a member of the hidden package ‘binary-0.7.5.0@binar_IvYoLp9H6Xy3zEH13MmZwd’.
Run Code Online (Sandbox Code Playgroud)

当我Data.Binary使用GHCi版本7.10.2 导入我的堆栈项目时.

奇怪的是,如果我执行GHCi,这不会出现stack exec ghci,并且我无法binary通过堆栈安装更新版本的包,它看起来:

D:\p>stack install binary
Setting codepage to UTF-8 (65001) to ensure correct output from GHC
NOTE: the install command is functionally equivalent to 'build --copy-bins'

D:\p>stack install binary-0.7.6.1
Setting codepage to UTF-8 (65001) to ensure correct output from GHC
NOTE: the install command is functionally equivalent to 'build --copy-bins'
Error parsing targets: Specified target version …
Run Code Online (Sandbox Code Playgroud)

haskell haskell-stack

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

为什么编译器不考虑对象?

我试着收集一个密封班的孩子们:

import scala.reflect.macros.blackbox.Context
import scala.language.experimental.macros

object Enum {
  def values[A]: Seq[A] = macro EnumImpl.values[A]

  class EnumImpl(val c: Context) {
    import c.universe._

    implicit class SymbolOp(s: Symbol) {
      def asSealedClass = s.asClass.ensuring(_.isSealed, s"$s is not sealed")
      def asCaseClass = s.asClass.ensuring(_.isCaseClass, s"$s is not a case class")
    }

    def values[A: c.WeakTypeTag]: c.Expr[A] = {
      val enumSymbol = weakTypeOf[A].typeSymbol.asSealedClass
      val elemSymbols = enumSymbol.knownDirectSubclasses.toList
      val elemIdents = elemSymbols.map(s => Ident(s.asCaseClass))
      val elemSeqSymbol = weakTypeOf[Seq[A]].typeSymbol
      c.Expr(Apply(Ident(elemSeqSymbol.companion), elemIdents))
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我测试了这个:

sealed trait Foo
case object …
Run Code Online (Sandbox Code Playgroud)

macros enums scala

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

如何获得所有构造函数?

ClassSymbolApi#primaryConstructor,但我需要该类可能包含的每个主要/辅助构造函数.你怎么做呢?谢谢!

macros scala

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

标签 统计

haskell ×3

macros ×2

scala ×2

concurrency ×1

enums ×1

haskell-stack ×1

monads ×1