小编Pau*_*ner的帖子

将文本基线与CSS中的按钮对齐

我想实现此图像上显示的两个对齐之一: 问题表征.如果它使事情变得简单,CSS3就可以了,甚至更好.

我的主要问题是我设法将包含文本的一个div与按钮对齐,但文本本身与div的顶部对齐而不是底部.

css alignment css3

50
推荐指数
2
解决办法
3万
查看次数

是否有用于编写词法分析器的haskell EDSL?

在一个阶段中混合词法分析器和解析阶段有时会使Parsec解析器的可读性降低,但也会降低它们的速度.一种解决方案是使用Alex作为标记化器,然后使用Parsec作为标记流的解析器.

这很好但是如果我能摆脱Alex会更好,因为它在编译管道中添加了一个预处理阶段,与haskell"IDE"等没有很好地集成.我想知道是否有这样的事情用于描述标记器的haskell EDSL,非常符合Alex的风格,但是作为库.

haskell parsec alex

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

haskell中最快的错误monad是什么?

Maybe/Either monad显着降低了速度.使用一些延续monad来处理错误会加快速度吗?有没有"内置延续monad"或"buitin error monad"这样的东西?内置我的意思是ST.

基准测试:

import Criterion.Main                                          

unsafeDiv x 0 = error "division by zero"                       
unsafeDiv x y = x `div` y                                      

safeDiv x 0 = Nothing                                          
safeDiv x y = Just (x `div` y)                                 

test1 :: Int -> [Int]                                          
test1 n = map (n `unsafeDiv`) [n,n-1..1]                       

test2 :: Int -> Maybe [Int]                                    
test2 n = mapM (n `safeDiv`) [n-1,n-2..0]                      

test3 :: Int -> Maybe [Int]                                    
test3 n = test3' Just [n-1,n-2..0]                             
  where test3' k []     = k []                                 
        test3' …
Run Code Online (Sandbox Code Playgroud)

monads haskell

11
推荐指数
3
解决办法
2463
查看次数

Scala集合中的森林砍伐

从Scala集合的设计中我理解如下:

scala> BitSet(1,2,3) map (_ + "a")
res7: scala.collection.immutable.Set[String] = Set(1a, 2a, 3a)
Run Code Online (Sandbox Code Playgroud)

不构建中间数据结构:新的Set是在使用Builder迭代BitSet时构建的.事实上,在这种情况下很明显,因为字符串的位组没有意义.

列表中的地图怎么样?我很确定以下内容构建了一个中间列表:

scala> List(1,2,3) map (_ -> "foo") toMap
res8: scala.collection.immutable.Map[Int,java.lang.String] =
    Map(1 -> foo, 2 -> foo, 3 -> foo)
Run Code Online (Sandbox Code Playgroud)

即清单List((1,foo), (2,foo), (3,foo)).如果没有,那怎么样?现在,以下怎么样?

scala> Map.empty ++ (List(1,2,3) map (_ -> "foo"))
res10: scala.collection.immutable.Map[Int,java.lang.String] =
    Map(1 -> foo, 2 -> foo, 3 -> foo)
Run Code Online (Sandbox Code Playgroud)

这一次,从我似乎从以下类型的理解++:

def ++ [B >: (A, B), That]
       (that: TraversableOnce[B])
       (implicit bf: CanBuildFrom[Map[A, B], B, That]): That
Run Code Online (Sandbox Code Playgroud)

认为 …

collections scala implicits

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

标签 统计

haskell ×2

alex ×1

alignment ×1

collections ×1

css ×1

css3 ×1

implicits ×1

monads ×1

parsec ×1

scala ×1