申请人撰写,monad没有.
上述陈述是什么意思?什么时候比其他人更好?
monads haskell functional-programming monad-transformers applicative
以下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"的行失败了.他们看起来基本相同.
我正在使用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) 该文件规定:
函数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?
有谁知道如何cabal install
利用并行性?我正在使用GHC编译,虽然我不知道GHC本身是否可以进行并行构建,但肯定cabal install
可以并行运行多个编译,不是吗?至少对于独特的独立包装?
有谁知道它是否可能以及如何做到这一点?
我想从我的应用程序检查设备是否具有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连接?
Scala和Frege都是针对JVM的类型化函数语言.
弗雷格更接近哈斯克尔,斯卡拉有更独立的历史.
但是如果我们不看语法差异,两者之间允许的编程技术,风格,概念有什么不同?
我一直试图让我的头围绕浅层绑定和深层绑定,维基百科并没有很好地解释它.假设我有以下代码,如果语言使用动态范围,输出将是什么
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) 是否有可以在Android上安装的Haskell解释器(带有标准库)?
因此,拥有Android设备的人可以在Android设备上进行一些Haskell练习:在Haskell中编写并运行一些示例代码.
看待这个问题:通常情况下,在交互式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) haskell ×6
android ×2
applicative ×1
binding ×1
build ×1
cabal ×1
formatting ×1
frege ×1
ghc ×1
ghci ×1
git ×1
git-subtree ×1
inline ×1
interpreter ×1
java ×1
java-8 ×1
lambda ×1
locale ×1
monads ×1
multicore ×1
paradigms ×1
pragma ×1
pull ×1
push ×1
scala ×1
scoping ×1
testing ×1
unicode ×1
void ×1
wifi ×1