我对榆树很新,但慢慢熟悉它.我正在做一些简单的Http请求,它在各个方面都很成功(我得到要显示的数据等)
目前我只能让我的fetchData触发onClick,我想在init上初始化它,但是我无法绕过这个问题.
....这是我的fetchData函数:
fetchData : Cmd Msg
fetchData =
Http.get repoInfoListDecoder "http://example/api"
|> Task.mapError toString
|> Task.perform ErrorOccurred DataFetched
Run Code Online (Sandbox Code Playgroud)
当前由onClick事件在视图中触发:
.....
, button [ onClick FetchData ] [ text "Load Data" ]
.....
Run Code Online (Sandbox Code Playgroud)
我想避免通过按钮请求数据,而是希望在初始化应用程序时加载数据.这是我的初始:
init =
let
model =
{ message = "Welcome", repos = [] }
in
model ! []
Run Code Online (Sandbox Code Playgroud)
还有我的更新(有点剥离...例如sakes):
update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
case msg of
NoOp ->
model ! []
...........
FetchData ->
{ model | message="hi" …
Run Code Online (Sandbox Code Playgroud) 我在Linux(Ubuntu 17.04)中成功安装了Coq 8.6和CoqIDE.但是,我不知道为了将SSReflect和MathComp添加到此安装中而继续.我检查过的所有参考资料似乎都让我很困惑.有没有人有一个直接和简单的食谱?我确实安装了opam.
基于我的读数(特别是维基和这篇博客文章),我想出了下面default.nix
,我和加载nix-shell
:
with import <nixpkgs> {};
let emacs =
emacsWithPackages (p : [ p.tuareg ]);
in
stdenv.mkDerivation rec {
name = "env";
src = ./.;
# Customizable development requirements
buildInputs = [
pkgconfig
ocaml
ocamlPackages.merlin
ocamlPackages.findlib
ocamlPackages.lablgtk
ocamlPackages.camlp5_transitional
ncurses
emacs
];
# Customizable development shell setup
shellHook = ''
export PATH=`pwd`/bin:$PATH
'';
}
Run Code Online (Sandbox Code Playgroud)
但它总是打印一个警告:
warning: dumping very large path (> 256 MiB); this may run out of memory
Run Code Online (Sandbox Code Playgroud)
并且需要很长时间才能加载(nix-shell
启动后第一次呼叫约45 秒,后续呼叫约2秒).
这条消息是什么意思?当我在Google上查找它时,我发现了一些GitHub问题,但没有以一种易于理解的方式表达. …
我在NixOS 16.09上,我想使用目前仅在nixpkgs-unstable/nixos-unstable中的软件包.
使用nix-channel --add
,我能够将nixpkgs-unstable添加到我的(用户)频道,并使用它来安装最新版本的某些软件包nix-env
.
但是,据我所知,虽然nix-env
依赖于用户定义的通道,但nix-shell
取决于NIX_PATH
环境变量,在我的情况下:
$ echo $NIX_PATH
nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs:nixos-config=/etc/nixos/configuration.nix:/nix/var/nix/profiles/per-user/root/channels
Run Code Online (Sandbox Code Playgroud)
所以这清楚地表明了问题:nix-shell
将使用系统范围的NixOS 16.09通道而不是用户定义的nixpkgs-unstable通道.
现在,我正在使用此解决方法:
nix-shell -I nixpkgs=~/.nix-defexpr/channels/nixpkgs
Run Code Online (Sandbox Code Playgroud)
它看起来不是很漂亮.这样做的推荐方法是什么?
它是否添加如下内容:
export NIX_PATH="nixpkgs=~/.nix-defexpr/channels/nixpkgs:nixos-config=/etc/nixos/configuration.nix:/nix/var/nix/profiles/per-user/root/channels"
Run Code Online (Sandbox Code Playgroud)
对我.profile
?它看起来也不是很漂亮.
在Coq中,当试图证明记录相等时,是否有一种策略可以将其分解为所有字段相等?例如,
Record R := {x:nat;y:nat}.
Variables a b c d : nat.
Lemma eqr : {|x:=a;y:=b|} = {|x:=c;y:=d|}.
Run Code Online (Sandbox Code Playgroud)
有没有一种策略可以将其减少到a = c /\ b = d
?请注意,一般而言,任何一个a b c d
可能都是复杂的大型证明术语(然后我可以使用证明不相关公理来执行)。
是否有一种策略可以使用而不是replace
在下面的示例中来简化此表达式?
Require Import Vector.
Goal forall (n b:nat) (x:t nat n), (map (fun a => plus b a) x) = x.
Proof.
intros n b x.
replace (fun a => plus b a) with (plus b) by auto.
...
Run Code Online (Sandbox Code Playgroud)