小编imz*_*hev的帖子

申请人撰写,monad没有

申请人撰写,monad没有.

上述陈述是什么意思?什么时候比其他人更好?

monads haskell functional-programming monad-transformers applicative

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

为什么这个Java 8 lambda无法编译?

以下Java代码无法编译:

@FunctionalInterface
private interface BiConsumer<A, B> {
    void accept(A a, B b);
}

private static void takeBiConsumer(BiConsumer<String, String> bc) { }

public static void main(String[] args) {
    takeBiConsumer((String s1, String s2) -> new String("hi")); // OK
    takeBiConsumer((String s1, String s2) -> "hi"); // Error
}
Run Code Online (Sandbox Code Playgroud)

编译器报告:

Error:(31, 58) java: incompatible types: bad return type in lambda expression
    java.lang.String cannot be converted to void
Run Code Online (Sandbox Code Playgroud)

奇怪的是标记为"OK"的行编译得很好,但标记为"Error"的行失败了.他们看起来基本相同.

java lambda compiler-errors void java-8

83
推荐指数
4
解决办法
2万
查看次数

Git子树 - 子树最新但无法推送

我正在使用Git子树和我正在处理的几个项目,以便在它们之间共享一些基本代码.基本代码经常更新,升级可以在任何项目中进行,最终所有项目都会更新.

我遇到了一个问题,git报告我的子树是最新的,但是推送被拒绝了.例如:

#! git subtree pull --prefix=public/shared project-shared master
From github.com:****
* branch            master     -> FETCH_HEAD
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)

如果我推,我应该得到一个消息,没有什么可以推动......对吗?对?:(

#! git subtree push --prefix=public/shared project-shared master
git push using:  project-shared master
To git@github.com:***
! [rejected]        72a6157733c4e0bf22f72b443e4ad3be0bc555ce -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:***'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about …
Run Code Online (Sandbox Code Playgroud)

git push pull git-subtree

80
推荐指数
5
解决办法
2万
查看次数

是否有任何理由不使用INLINABLE pragma作为函数?

文件规定:

函数f上的{ - #INLINABLE f# - } pragma具有以下行为:

  • 虽然INLINE说"请内联我",INLINABLE说"请随意内联我;请自行决定".换句话说,选择留给GHC,它使用与无编译指示函数相同的规则.与INLINE不同,该决定是在呼叫站点进行的,因此会受到内联阈值,优化级别等因素的影响.

  • 与INLINE类似,INLINABLE pragma保留原始RHS的副本以用于内联,并且无论RHS的大小如何,都将其保留在接口文件中.

  • 使用INLINABLE的一种方法是结合内联特殊函数(第7.18节"特殊内置函数").调用内联f非常难以内联f.为了确保f可以内联,最好将f的定义标记为INLINABLE,以便GHC保证在不管它有多大的情况下展开展开.此外,通过将f注释为INLINABLE,可以确保f的原始RHS内联,而不是f GHC优化器产生的任何随机优化版本.

  • INLINABLE pragma也适用于SPECIALIZE:如果将函数f标记为INLINABLE,那么随后可以在另一个模块中进行SPECIALIZE(参见第7.16.8节"SPECIALIZE pragma").

  • 与INLINE不同,可以在递归函数上使用INLINABLE编译指示.主要原因是允许以后使用SPECIALIZE

它的缺点是什么?

它是否使界面文件更大,更大?它是否使编译速度慢得多?

有没有理由我不应该在我写的每个导出函数上放置一个INLINABLE pragma?是否有任何理由GHC没有在我写的每个导出函数上放置一个INLINABLE pragma?

haskell inline pragma ghc

44
推荐指数
1
解决办法
1971
查看次数

我可以使用"cabal install"来使用多个内核吗?

有谁知道如何cabal install利用并行性?我正在使用GHC编译,虽然我不知道GHC本身是否可以进行并行构建,但肯定cabal install可以并行运行多个编译,不是吗?至少对于独特的独立包装?

有谁知道它是否可能以及如何做到这一点?

parallel-processing haskell multicore build cabal

39
推荐指数
3
解决办法
4582
查看次数

Android:在模拟器中模拟WiFi?

我想从我的应用程序检查设备是否具有WiFi连接,但为了做到这一点,我必须首先找到一种方法来在模拟器中获得"WiFi".只需进入设置 - >无线控制 - > Wifi无法启动Wi-Fi,同时logcat说:

E/WifiService(  566): Failed to load Wi-Fi driver.
D/SettingsWifiEnabler(  695): Received wifi state changed from Unknown to Enabling
D/SettingsWifiEnabler(  695): Received wifi state changed from Enabling to Unknown
Run Code Online (Sandbox Code Playgroud)

如何在模拟器中模拟WiFi连接?

testing android device-emulation wifi android-emulator

32
推荐指数
3
解决办法
6万
查看次数

Scala和Frege(编程范式)之间的主要区别是什么?

Scala和Frege都是针对JVM的类型化函数语言.

弗雷格更接近哈斯克尔,斯卡拉有更独立的历史.

但是如果我们不看语法差异,两者之间允许的编程技术,风格,概念有什么不同?

paradigms haskell functional-programming scala frege

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

动态范围 - 深度绑定与浅层绑定

我一直试图让我的头围绕浅层绑定和深层绑定,维基百科并没有很好地解释它.假设我有以下代码,如果语言使用动态范围,输出将是什么

a)深度约束

b)浅层绑定?

x: integer := 1
y: integer := 2

procedure add
  x := x + y

procedure second(P:procedure)
  x:integer := 2
  P()

procedure first
  y:integer := 3
  second(add)

----main starts here---
first()
write_integer(x)
Run Code Online (Sandbox Code Playgroud)

language-agnostic binding scoping dynamic-scope

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

Android上的Haskell解释器?

是否有可以在Android上安装的Haskell解释器(带有标准库)?

因此,拥有Android设备的人可以在Android设备上进行一些Haskell练习:在Haskell中编写并运行一些示例代码.

android interpreter haskell

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

如何破解GHCi(或Hugs)以便打印未转义的Unicode字符?

看待这个问题:通常情况下,在交互式Haskell的环境,非拉丁Unicode字符(即使结果的一部分)印刷逃脱,即使语言环境允许这样的字符(而不是通过直接输出putStrLn,putChar它看起来很好,可读) - 示例显示GHCi和Hugs98:

$ ghci
GHCi, version 7.0.1: http://www.haskell.org/ghc/  :? for help
Prelude> "hello: ??????"
"hello: \1087\1088\1080\1074\1077\1090"
Prelude> '?'
'\1071'
Prelude> putStrLn "hello: ??????"
hello: ??????
Prelude> :q
Leaving GHCi.
$ hugs -98
__   __ __  __  ____   ___      _________________________________________
||   || ||  || ||  || ||__      Hugs 98: Based on the Haskell 98 standard
||___|| ||__|| ||__||  __||     Copyright (c) 1994-2005
||---||         ___||           World Wide Web: http://haskell.org/hugs
||   ||                         Bugs: http://hackage.haskell.org/trac/hugs
||   || Version: September …
Run Code Online (Sandbox Code Playgroud)

unicode formatting locale haskell ghci

24
推荐指数
5
解决办法
5177
查看次数