我在想一个像
takeChunkUntil :: [a] -> ([a] -> Bool) -> ([a], [a])
希望偷懒。
它从第一个列表中取出元素,直到它们中的一组满足谓词,然后返回该子列表以及其余元素。
解答一些问题:
最终目标是使某些东西可以懒惰地读取Huffman代码。因此,如果您有一串字符串(在此表示为Bool,)bs
,则可以编写代码take n $ decode huffmanTree bs
以获取前n个编码值,同时仅消耗bs
必要的数量。如果您愿意,我会发布更多详细信息和尝试的解决方案。这可能会很长:)(请注意,我是一位学生给这个问题的辅导老师,但我没有试图帮助他,因为这超出了我,但是我现在很好奇。)
续:整个过程在这里:
霍夫曼树的定义:
data BTree a = Leaf a | Fork (BTree a) (BTree a) deriving (Show, Eq)
Run Code Online (Sandbox Code Playgroud)
目标:编写一个懒惰的解码函数,该函数返回一对解码后的值和一个布尔值,指示是否有剩余的值不够长而无法解码为一个值。注意:我们使用布尔来表示:True = 1,False = 0。
decode :: BTree a -> [Bool] -> ([a], Bool)
Run Code Online (Sandbox Code Playgroud)
这就是本质:我编写的第一个函数是对一个值进行解码的函数。如果输入列表为空,则返回Nothing,否则返回解码值和剩余的“位”。
decode1 :: BTree a -> [Bool] -> Maybe (a, [Bool])
decode1 (Leaf v) bs = Just (v, bs)
decode1 …
Run Code Online (Sandbox Code Playgroud) 我是引导程序的新手,实际上我试图改造一个不是我自己设计的网站。我试图了解“容器”类的目的。有没有我不想要容器的情况?他们两个怎么样?
我开始在 Purescript 和 Haskell 中使用 VS Code。VS Code 的“转到下一个问题”功能非常方便,只是它可以转到任何文件中的任何问题(包括警告)。我希望它转到此文件中的下一个问题。
或者,有没有办法在不需要使用鼠标悬停在警告或错误上的情况下查看警告或错误?“转到下一个问题”是通过一个窥视窗口来完成的,但除此之外,不得不将我的手从键盘上移开是很烦人的。
我有一个情况,我有一个浮点数的ndarray X,让我们说100x10,我想看看第一列的一些条件,并创建一个形状为100x1的布尔ndarray B. 然后我想使用B作为X的索引来拉出True所在的值.然而,对于BI中的每个True,想要拉出X的整行.我认为这将自动工作,因为B将被广播为100x10形状.但是它似乎没有这种方式.这是使用2x2和2x1 ndarrays的示例.
a = np.array([True, False])
a.shape = (2,1)
b = np.array([1, 2, 3, 4])
b.shape = (2,2)
print(a)
print(b)
print(b[a])
Run Code Online (Sandbox Code Playgroud)
这打印
[[True]
[False]]
[[ 1 2 ]
[ 3 4 ]]
[1]
Run Code Online (Sandbox Code Playgroud)
我希望它能打印出来[1 2]
.为什么广播不像我期望的那样工作?
我的问题是关于numpy中的数组切片.以下行为的逻辑是什么?
x = arange(25)
x.shape = (5, 5)
# This results in a 2-d array in which rows and columns are excerpted from x
y = x[0:2, 0:2]
# But this results in a 1-d array
y2 = x[0:2, 0]
Run Code Online (Sandbox Code Playgroud)
我希望y2是一个二维数组,其中包含第0行和第0列第0列的值.
在 CSS 文件中,我想 @import 谷歌字体(例如 Roboto 或 Roboto Slab)的所有粗细和样式,以进行实验。稍后我可以修剪为仅需要的样式列表。有没有捷径,而不是将整个列表放入 @import 中?
我用多种语言编写过程序,并辅导过学生计算机科学,但我刚刚开始在 MacBook 上学习 Java。关于这个问题,我很高兴能找到任何可以解决我的问题的可用信息或教程的答案;我有能力理解先进的事物。
我一直在寻找适合我的 IDE 以及可以与我的学生一起使用的东西,并且我尝试过 IntelliJ、Eclipse 和 VS Code。在此过程中,我安装了外部 JAR 以提供额外的功能,例如 Apache Commons。
事情变得越来越混乱。我已经不知道如何在每个 IDE 中达到当前状态。我想更好地了解如何了解任何给定项目在每个 IDE 上使用的整体 Java 环境,包括任何外部 JAR 及其所在位置。我想知道他们是否借用了Java系统环境。
我的目标是了解我自己的系统如何达到当前配置的方式,逐个项目更新我的配置,并帮助我的学生获得匹配的配置。
我还想要有关安装外部 JAR 的正确方法或最简单/最干净方法的建议。
numpy ×2
python ×2
css ×1
eclipse ×1
google-fonts ×1
haskell ×1
huffman-code ×1
ide ×1
java ×1