小编Kon*_*tov的帖子

斯卡拉隐含的提升

我想隐式地将函数转换A => BList[A] => List[B].

我写了以下隐含的定义:

implicit def lift[A, B](f: A => B): List[A] => List[B] = ...
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我编写以下代码时,隐式不会被应用:

val plusOne: (List[Int]) => List[Int] = (x: Int) => (x + 1)
Run Code Online (Sandbox Code Playgroud)

如果我用显式时间注释函数,它工作正常.

为什么?我该如何解决?

UPDATE.似乎问题是匿名函数特有的.相比:

@Test
def localLiftingGenerics {
  implicit def anyPairToList[X, Y](x: (X, Y)): List[X] => List[Y] = throw new UnsupportedOperationException  

  val v: List[String] => List[Int] = ("abc", 239)
}

@Test
def localLiftingFuns {
  implicit def fun2ListFun[X, Y](f: X => Y): List[X] => List[Y] = throw …
Run Code Online (Sandbox Code Playgroud)

scala implicits

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

在scalaz中更像haskell的应用语法

我正在尝试使用scalaz.我尝试在应用代码中编写代码.我写了这样的代码:

val max: Option[Int] = (a |@| b) { math.max(_, _) }
Run Code Online (Sandbox Code Playgroud)

我非常不喜欢这段代码.我想编码更接近Haskell风格的代码,如下所示:

val max: Option[Int] = { math.max(_, _) } <$> a <*> b
Run Code Online (Sandbox Code Playgroud)

这可能吗.为什么scalaz没有这样实现呢?

scala scalaz

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

事件监听器内存在javascript中泄漏

我正在写一个javascript RIA.我主要针对现代浏览器,即最新的Firefox,Chrome,IE9 +.我听说当我们在DOM节点和JavaScript对象之间创建一个循环时,旧的浏览器很容易引入内存泄漏.我应该在哪里担心这个问题?它是在更现代的浏览器中修复的吗?你能给我一些进一步的阅读吗?

javascript events dom

5
推荐指数
0
解决办法
3463
查看次数

Coq作为持续集成的一部分

在我目前的项目中,我们使用Java和Coq.我们使用maven进行持续集成设置.我们想检查coq文件作为其中的一部分.即我们需要:

  • 如果没有安装coq,请在本地下载并安装coq(就像maven对gwt这样的框架一样)
  • 检查coq文件是否正确

有人尝试过设置吗?如何才能做到这一点?

java continuous-integration coq maven

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

putStrLn不会打印到控制台

我正在试验wxHaskell.我无法在ghci下运行应用程序,所以我必须使用应用程序来测试它.我想用println调试来测试程序.但是,似乎putStrLn在GUI中不起作用:

{-# LANGUAGE Haskell2010 #-}

module Main where

import Graphics.UI.WX

drawUI dc view = do 
  circle dc (point 10 10) 5 [penKind := PenSolid, color := red]
  putStrLn "painted"  

helloGui :: IO ()
helloGui = do
  f <- frame [
    text := "Example", 
    resizeable := False, 
    bgcolor := white,
    layout := space 400 300,
    on paint := drawUI]
    return ()

main :: IO ()
main = do
  putStrLn "Started"
  start helloGui
Run Code Online (Sandbox Code Playgroud)

如果我评论出来启动helloGui,一切都打印得很好.但是,如果我将其返回,则不会打印任何内容,但会显示窗口.这有什么不对?

haskell wxhaskell

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

要查看哪些开源JavaScript项目,以了解如何使用该语言编写大型程序

我在Java的大规模开发方面有很多经验.但是,我想学习如何在JavaScript中这样做.任何人都能用JavaScript向我指出一些非常大的(> 20KLOC,甚至> 100KLOC)开源项目,我可以从中学习.

特别是我想学习:

  • 如何构建JS项目
  • 如何测试它们
  • 如何重构它们

PS我读了几本好的JS书,包括JS Good Parts,但它们都不满足我的需求.它们中的大多数只是小的(<20k行代码).我也知道Closure编译器,但发现它的方法不令人满意.对我来说,它类似于使用一些注释手动将代码从Java转换为JavaScript,并使用检查器来确保类型是正确的.我宁愿使用GWT(我现在这样做).

javascript architecture

5
推荐指数
0
解决办法
217
查看次数

相同类型的两个相同类型的实例

想象一下,我们有一个使用库的Haskell程序.该程序从其依赖项之一为类型T提供类型类TC实例.在同一个库的下一个版本中,库作者为类型T提供了类型TC的另一个实例.

我们想要使用两个类型类实例.我们怎么能这样做?

PS newtype解决方案无效.这两个实例都驻留在我们无法控制的库中.

PPS我没有真实代码的例子.这是一个理论问题.我只是想了解类型类如何与库可组合性一起工作.

haskell types typeclass

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

BSD许可证符合webpack

React根据BSD样式许可证分发.当我缩小生成的JS文件时如何满足这个要求?即许多库具有许可标头,其中包括特殊元数据但不包括React.

我使用webpack和uglifyjs进行缩小.Uglifyjs可以选择保留评论,但它包含所有内容.还有一个uglify插件,但我无法将其与webpack集成.

uglifyjs reactjs webpack

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

如何对TensorFlow模型进行分析

如何分析TensorFlow模型?我想至少想方设法让模型更快,看看我有多少GPU负载,以及消耗多少GPU内存.

tensorflow

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

在coq中编写隐式证明对象的不可能模式

我试图使用coq作为依赖类型的编程语言.我创建了以下小程序:

Inductive Good : list nat -> Set := 
  | GoodNonEmpty : forall h t, Good (h :: t).

Definition get_first(l : list nat)(good : Good l) : nat := 
  match l with
    | h :: t => h
    | nil => 
      match good with 
      end
  end. 
Run Code Online (Sandbox Code Playgroud)

我为非空列表定义了一个类型,并创建了一个函数,它获取了这样一个列表的第一个元素,前提是它有一个非空的证据.我处理好头部项目由两个项目组成的情况,但我无法处理空列表的不可能的情况.我怎么能在coq中做到这一点?

coq

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