小编Shi*_*nai的帖子

元素位于列表的前半部分,Haskell

阅读《使用 Haskell 编程》一书时,其中一个问题是查找给定元素是否位于列表的前半部分。这可以完成为

isInFirstHalf x xs = elem x firstHalf
    where firstHalf = take (length xs `div` 2) xs
Run Code Online (Sandbox Code Playgroud)

然而问题是这里length遍历了整个列表。在命令式语言中,可以通过跟踪元素索引和当前计数器来尽早缩短循环。例如,如果列表有一百万个元素,并且第三个元素有匹配项,那么一旦完成第六个元素的循环,您可以立即返回 true。

我的问题是是否有办法在 Haskell 中实现类似的东西。

haskell

4
推荐指数
1
解决办法
297
查看次数

无法将 d3js 运行到网站(jupyter notebook)

我对 html、d3js 或 javascript 不太了解,但根据 Udacity 的一些课程,我可以将 d3js 加载到任何网站,并在 Web 开发人员控制台中输入此代码:

var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://d3js.org/d3.v4.min.js';
document.head.appendChild(script);
Run Code Online (Sandbox Code Playgroud)

看起来很简单,除了我的 jupyter notebook 之外,它适用于我尝试过的每一页。该脚本被附加在<head>标签中,但它的不透明度非常低,当我尝试运行一些 d3js 代码时它不起作用(运行d3.select("p");给出ReferenceError: d3 is not defined)。还有其他解决方法吗?

html javascript d3.js jupyter-notebook

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

为DataFrames创建我自己的方法(python)

因此,我想为自己的项目创建一个模块,并希望使用方法。例如,我想做:

from mymodule import *
df = pd.DataFrame(np.random.randn(4,4))
df.mymethod()
Run Code Online (Sandbox Code Playgroud)

看来我无法使用,.myfunc()因为我认为只能为自己创建的类使用方法。解决方法是制作mymethod一个函数并将其pandas.Dataframes用作变量:

myfunc(df)
Run Code Online (Sandbox Code Playgroud)

我真的不想要这样做,还是有实现第一个的方法吗?

python methods module pandas

2
推荐指数
3
解决办法
1771
查看次数

可扩展电子应用程序的架构?

这是一个有点开放的问题,但是,制作一个好的可扩展电子应用程序的好方法是什么?VSCode、Atom 和许多其他人支持扩展,但他们的代码库太大,我无法理解正在发生的事情。我对 Jupyterlab 感到非常惊讶,据他们说,它包含一个小核心,其他一切都只是它上面的扩展。所以我想知道如何构建这些应用程序。

我的具体问题是:

  • 是否有创建可扩展架构的最佳实践?
  • 电子部分如何“识别”扩展?它是如何加载的?应该什么时候加载?
  • 是否有一个最小的例子来说明如何做到这一点?从某种意义上说,提供这两个示例可以回答整个问题:
    • 只在页面的特定空间添加按钮的扩展程序(因此,如何从扩展程序操作 dom)
    • 如何在菜单栏中添加另一个选项(因此,如何与扩展中的电子 API 交互。)

javascript architecture electron

2
推荐指数
1
解决办法
313
查看次数

haskell 中的“pars”没有加速

我正在尝试学习 HaskellparsparseqHaskell。我做了以下事情:

import Control.Parallel
import System.Random

quicksort :: Ord a => [a] -> [a]
quicksort [] = []
quicksort (x : xs) = losort ++ x : hisort
  where
    losort = quicksort [y | y <- xs, y < x]
    hisort = quicksort [y | y <- xs, y >= x]

parallelQuicksort :: Ord a => [a] -> [a]
parallelQuicksort [] = []
parallelQuicksort (x : xs) =
  losort `par` (hisort `pseq` (losort ++ (x : …
Run Code Online (Sandbox Code Playgroud)

haskell

2
推荐指数
1
解决办法
63
查看次数