我有以下形式的赋值和空值检查,以避免在我的地图中进行双重查找.
在Dart中有更好或更惯用的方法吗?
bool isConnected(a, b){
List list;
return (
((list = outgoing[a]) != null && list.contains(b)) ||
((list = incoming[a]) != null && list.contains(b))
);
}
Run Code Online (Sandbox Code Playgroud) 在纯函数式语言中,您可以对值执行的唯一操作是对其应用函数.
换句话说,如果你想用类型值做任何有趣的事情,a
你需要一个带有类型的函数(例如),f :: a -> b
然后应用它.如果有人用你(flip apply) a
的类型交给你(a -> b) -> b
,那是否适合替代a
?
什么叫做类型的东西(a -> b) -> b
?看起来它似乎是一个替身a
,我很想把它称为代理,或来自http://www.thesaurus.com/browse/proxy的东西.
我一般不喜欢微基准测试.但这一个有一个非常有趣的结果.
http://ernestdelgado.com/archive/benchmark-on-the-floor/
它表明这Math.floor
是在Javascript中计算楼层的最慢方式.~~n
,n|n
,n&n
全部为快.
这看起来非常令人震惊,因为我希望在今天的现代浏览器中实现Javascript的人会是一些相当聪明的人.
对于其他方法无法做到的事情,地板是否重要?有没有理由使用它?
作为IntelliJ Idea Ultimate版本的所有者,并且已经安装了IntelliJ Ruby插件,我不得不想知道使用RubyMine IDE有多么不同.
我猜他们分享了很多代码和功能.有哪些主要区别?
如果我进入Ruby世界,我应该购买RubyMine IDE还是继续使用IntelliJ + Ruby插件?
我正在运行elm-repl来玩这种语言.
我想看看现在的时间.我该怎么办?当前库似乎不可能.这是为什么?
编辑:我做了一个包来帮助解决这个问题.http://package.elm-lang.org/packages/z5h/time-app
这被问到榆树0.15左右 - 榆树0.17和0.18的情况有所不同:请参阅如何获得榆树当前时间0.17/0.18?
我想跑一个git rebase -i some-hash
.
当我运行它时,我收到错误:
您要求修改最近的提交,但这样做会使其为空.您可以使用--allow-empty重复命令,也可以使用"git reset HEAD ^"完全删除提交.
[...]
无法申请[...]
该错误似乎特定于单个提交,因为--allow-empty
这不是我可以传递给rebase的选项.
显然--keep-empty
我是一个可以传递的选项git rebase
,但它似乎没有解决问题.
如果rebase中的提交最终没有效果,我怎么能改变并告诉git呢?
举个例子:假设你有一个像Angular Seed这样的个人项目(这是一个Angular项目的起点https://github.com/angular/angular-seed).
现在您想将其用作项目的起点(比如在线相册).
您不应该只创建一个分支,因为您没有对种子项目进行变更.但如果它是你自己的回购,github将不会让你分叉.
那么创建一个仍然可以从原始种子项目中获取更改的克隆的工作流程是什么?我以为这是一个分叉.
我首先从https://www.haskell.org/platform/建立了Haskell,但是ghc-mod遇到了沙箱的问题并且要更新它我需要一个更新的集合,需要更新的ghc.或类似的东西.(/sf/answers/1963437311/ ??)
所以我删除了所有内容,并从http://ghcformacosx.github.io/安装.然后,设置一个新沙箱的一些奇怪的失败是因为某些东西没有适当的快乐依赖.(https://github.com/haskell-suite/haskell-src-exts/issues/14)
好.安装快乐.现在尝试(再次)安装ghc-mod,我得到一个巨大的混乱(下面).
我应该使用http://www.stackage.org/吗?
我看到有人提到ghc-pkg recache
或cabal install cabal-install
......我需要做的事情是什么?
混乱:
Resolving dependencies... Configuring ghc-mod-5.2.1.2... Building ghc-mod-5.2.1.2... Failed to install ghc-mod-5.2.1.2 Build log ( /Users/mark/.cabal/logs/ghc-mod-5.2.1.2.log ): Configuring ghc-mod-5.2.1.2... Building ghc-mod-5.2.1.2... Preprocessing library ghc-mod-5.2.1.2...
Language/Haskell/GhcMod/Convert.hs:1:51: Warning:
-XOverlappingInstances is deprecated: instead use per-instance pragmas OVERLAPPING/OVERLAPPABLE/OVERLAPS [ 1 of 38] Compiling Language.Haskell.GhcMod.Read ( Language/Haskell/GhcMod/Read.hs, dist/build/Language/Haskell/GhcMod/Read.o ) [ 2 of 38] Compiling Language.Haskell.GhcMod.Cabal21 ( Language/Haskell/GhcMod/Cabal21.hs, dist/build/Language/Haskell/GhcMod/Cabal21.o ) [ 3 of 38] Compiling …
Run Code Online (Sandbox Code Playgroud) 我已经问过这个问题:
我如何获得Elm的当前时间?
并通过编写我自己的(现已弃用)start-app变体来回答:http:
//package.elm-lang.org/packages/z5h/time-app/1.0.1
当然,榆树建筑已经发生了变化,我旧的做事方式不再有效,因为没有信号或Time.timestamp
.
所以....
假设我使用标准更新函数签名构建应用程序:
update : Msg -> Model -> (Model, Cmd Msg)
我想用更新的时间给我的模型加时间戳.一个不可接受的几乎解决方案是订阅Time.every
.从概念上讲,这不是我想要的.这是随着时间更新模型,也是用消息单独更新模型.
我想要的是能够写一个带签名的更新函数:
updateWithTime : Msg -> Time -> Model -> (Model, Cmd Msg)
我开始尝试通过添加一些额外的消息来解决这个问题:
Msg = ... When | NewTime Time
并创建一个新命令:
timeCmd = perform (\x -> NewTime 0.0) NewTime Time.now
因此,在任何操作中,我都可以触发额外的命令来检索时间.但是这很快就会变得混乱和失控.
关于我如何清理它的任何想法?
设置npm为root用户是直接的并且工作.除非您必须以root身份运行npm命令(不推荐).所以我想我会尝试将其设置为非root用户.
根据npm文档,没有root访问权限的非root用户可以通过以下方式设置npm:
.npmrc
使用root
,创建文件binroot
,并manroot
指向用户拥有的文件夹.好.安装很好.
但节点无法看到npm提供的包.
那么如何让节点知道npm提供的包呢?(当我之前以root身份安装npm时,我没有做任何事情).我可以require.paths
在节点内设置,或者设置NODE_PATH
环境变量,但是要做什么?
谢谢.
elm ×2
git ×2
haskell ×2
javascript ×2
dart ×1
frp ×1
git-rebase ×1
github ×1
ide ×1
node.js ×1
npm ×1
optimization ×1
ruby ×1
rubymine ×1
time ×1