试图学习F#,但在尝试区分折叠和减少时感到困惑.折叠似乎做同样的事情,但需要额外的参数.是否存在这两种功能存在的合理原因,或者它们是否适合具有不同背景的人?(例如:C#中的字符串和字符串)
以下是从示例中复制的代码段:
let sumAList list =
List.reduce (fun acc elem -> acc + elem) list
let sumAFoldingList list =
List.fold (fun acc elem -> acc + elem) 0 list
printfn "Are these two the same? %A "
(sumAList [2; 4; 10] = sumAFoldingList [2; 4; 10])
Run Code Online (Sandbox Code Playgroud) 我得到了以下模式的错误:
UnicodeEncodeError: 'ascii' codec can't encode character u'\ufeff' in position 155: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
不知道是什么u'\ufeff'
,它在网络抓取时显示出来.我该如何纠正这种情况?该.replace()
字符串的方法不能进行这项工作.
这让我感到非常困惑。我认为 Docker 的图像 ID 是它的 SHA256 哈希值。但是,显然docker image ls --digests
(列在列标题下DIGEST
)的结果IMAGE ID
与该图像的不同。
例如
docker image ls --digests alpine
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
alpine latest sha256:769fddc7cc2f0a1c35abb2f91432e8beecf83916c421420e6a6da9f8975464b6 055936d39205 2 weeks ago 5.53MB
Run Code Online (Sandbox Code Playgroud)
尽管
docker image ls --no-trunc
REPOSITORY TAG IMAGE ID CREATED SIZE
...
alpine latest sha256:055936d3920576da37aa9bc460d70c5f212028bda1c08c0879aedf03d7a66ea1 2 weeks ago 5.53MB
Run Code Online (Sandbox Code Playgroud)
显然sha256:055936d3920576da37aa9bc460d70c5f212028bda1c08c0879aedf03d7a66ea1
(IMAGE ID) 和sha256:769fddc7cc2f0a1c35abb2f91432e8beecf83916c421420e6a6da9f8975464b6
(DIGEST) 不是同一个值。但为什么?具有sha256
相同图像的两个不同哈希值的目的是什么。它们分别是如何计算的?
在阅读Docker Deep Dive一书时,我对此感到困惑,无论是在书中还是在网上,我都无法找到明确的答案。
我正在学习数据结构,每个源都告诉我在实现堆时不要使用数组的索引0,而不给出任何解释原因.我在网上搜索,搜索了StackExchange,但找不到答案.
我在OS X上使用Spacemacs.我想将文件夹添加.emacs.d
到SourceTree,因为它是git repo的克隆.但是,我甚至无法从SourceTree - >文件 - >打开找到任何隐藏的文件夹.这是否意味着我将不得不依赖其他一些git接口?
我interact
用来逐步处理一些用户输入(具体来说,它是一个国际象棋程序).但是,我还没有找到一种方法来处理用户可能想要突破循环并从头开始匹配国际象棋的情况.
当我在ghci中执行正常程序时,按下Ctrl-C
将不会退出整个ghci,但只会停止程序本身并允许我继续执行其他一些程序.但是,如果我Ctrl-C
在控制台中按下该interact
功能,则会显示以下消息:
^CInterrupted.
*Main>
<stdin>: hGetChar: illegal operation (handle is closed)
Run Code Online (Sandbox Code Playgroud)
然后我必须重新启动ghci.
我还想过捕获特殊的用户输入,例如"退出",但是,由于类型interact
是interact :: (String -> String) -> IO ()
,输入必须首先通过键入的函数(String -> String)
,我还没有找到一种方法来通知主要的IO它应该退出.
我应该如何突破interact
?或者interact
不打算以这种方式使用,我应该组成自定义IO功能?
我目前正在阅读WebSharper的文档。在有关FRP的部分中,它指出:
功能性反应式编程(FRP)通常为事件流提供事件类型,为时变值提供行为类型,并在其上提供有用的组合器。
...
但是,目前我们决定避免实施FRP。相反,我们专注于功能的子集,它定义类似于“行为”的时变View值,但不支持实时采样。事件流留给用户使用回调或第三方库来处理。这是对FRP的极大简化,并且更容易有效实施。
随着弱指针在JavaScirpt中变得可用,可以修改此决定,尤其是考虑到OCaml React的成功。
在不久的将来,我们打算提供并发ML组合器,以更好地支持处理事件流并改善组件的组成。
但是,我不确定此处描述的“事件类型”和“行为类型”之间到底有什么区别。我在Google上搜索了一些文章/教程,但是它们似乎也不是很明确。
我不确定在WebSharper的实现中没有“事件”会丢失什么。
抱歉,这个问题听起来很根本。我不熟悉与FRP相关的概念。
-
编辑:我想我找到了我的疑问的答案,那就是没有事件流的不正确之处,在FRP-事件流和信号-仅使用信号会损失什么?。要点如下:
事件流允许累积更新,而行为只能取决于所观察元素的当前值。
如果同时实现了事件和行为,则它们允许在系统内进行递归。
我已经阅读了相当多的文档和问题,但我仍然对此感到困惑.
在文档的Profiling部分,建议首先在REPL中运行一次目标函数,以便在分析之前编译它.但是,如果脚本相当复杂并且打算在命令行中运行,接受参数怎么办?当julia
进程完成并且我第二次运行脚本时,是否再次执行编译?像/sf/answers/2942853441/这样的帖子,Julia每次编译脚本?给出相互矛盾的答案.当朱莉娅不断发展时,它们似乎也老了.
在我看来,第二次运行所需的时间与我的经验中的第一次运行完全相同.启动时间很长.我该如何优化这样的程序?添加__precompile__()
似乎根本没有改变执行时间.
另外,当我想描述这样一个程序时,我该怎么办?关于分析的所有资源都在REPL中讨论这样做.
我试图用命令在Ubuntu上构建Tensorflow,bazel build --config=opt --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" --config=cuda //tensorflow/tools/pip_package:build_pip_package
但运行后出现以下错误./configure
:
Illegal ambiguous match on configurable attribute "deps" in //tensorflow/core/grappler/costs:utils:
@local_config_cuda//cuda:using_clang
@local_config_cuda//cuda:using_nvcc
Multiple matches are not allowed unless one is unambiguously more specialized.
ERROR: Analysis of target '//tensorflow/tools/pip_package:build_pip_package' failed; build aborted
INFO: Elapsed time: 30.960s
FAILED: Build did NOT complete successfully (91 packages loaded)
Run Code Online (Sandbox Code Playgroud)
我不确定发生了什么.似乎使用clang和nvcc之间存在冲突,但我认为在配置过程中我没有指定在任何地方使用nvcc../configure
本应该没有任何问题.
奇怪的是,我无法在互联网上找到任何此类错误报告.
可能是因为我错误地安装了CUDA,还是更有可能是tensorflow
配置错误?
我可以从 flex 和 bison 生成的文件编译一个程序
cc lex.yy.c program.tab.c -o output
并且还通过
cc lex.yy.c program.tab.c -lfl -o output
他们都运行顺利,没有任何问题。
那么libfl
这里提供了什么?我试图搜索文档,但找不到详细的解释。
compilation ×2
f# ×2
algorithm ×1
bazel ×1
bison ×1
docker ×1
flex-lexer ×1
fold ×1
frp ×1
git ×1
gnu ×1
hash ×1
haskell ×1
heap ×1
input ×1
io ×1
julia ×1
loops ×1
macos ×1
profiling ×1
python ×1
reduce ×1
sha256 ×1
tensorflow ×1
ubuntu ×1
unicode ×1
unix ×1
user-input ×1
utf-8 ×1
websharper ×1