我是Haskell的初学者,所以请提前道歉.
我正在<a name="value-to-extract">使用HXT和haskell 解析一些HTML值().我可以a name="" name使用这个得到一个值列表:
anames <- runX $ parseHtml contents >>> css "a" >>> getAttrValue "name"
Run Code Online (Sandbox Code Playgroud)
如果我这样做:
print anames
Run Code Online (Sandbox Code Playgroud)
然后它打印此列表:
["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","2H_4_0001","2HCH0001","2HCH0002","2HCH0003","2HCH0004","2HCH0005","2HCH0006","2HCH0007","2HCH0008","2HCH0009","2HCH0010","2HCH0011","2HCH0012","2HCH0013","2HCH0014","2HCH0015","2HCH0016","2HCH0017","2HCH0018","2HCH0019","2HCH0020","2HCH0021","2HCH0022","2HCH0023","2HCH0024","2HCH0025","2HCH0026","2HCH0027","2HCH0028","2HCH0029","2HCH0030","2HCH0031","2H_4_0033"]
现在我想删除所有条目"".
所以我试试
nonEmptyANames <- filter (\s -> s /= "") anames
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
• Couldn't match type ‘[]’ with ‘IO’
Expected type: IO String
Actual type: [String]
• In a stmt of a 'do' block:
nonEmptyANames <- filter (\ s -> s /= "") anames
Run Code Online (Sandbox Code Playgroud)
我认为这是打字问题,所以我尝试:
putStrLn ("type of aname …Run Code Online (Sandbox Code Playgroud) 我可以使用以下方法将numpy ndarray转换为字节:myndarray.tobytes()如何将其返回到ndarray?
使用.tobytes()方法文档中的示例:
>>> x = np.array([[0, 1], [2, 3]])
>>> bytes = x.tobytes()
>>> bytes
b'\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00'
>>> np.some_magic_function_here(bytes)
array([[0, 1], [2, 3]])
Run Code Online (Sandbox Code Playgroud) 好的,所以这真的很愚蠢,但我不明白如何在Haskell中编写主要do区域之外的函数.我有这个脚本读取文件,找到该文件中的单词的位置,然后将结果分成10个分档:
{-# LANGUAGE OverloadedStrings #-}
import Data.Text as T
import Data.Text.Internal.Search
import qualified Data.Vector as V
import qualified Data.Text.IO as TIO
import Statistics.Sample.Histogram
main :: IO ()
main = do
rawText <- TIO.readFile "jane-eyre.asciidoc"
let locations = indices "morning" rawText
vec = V.fromList $ Prelude.map fromIntegral locations
(_, sizes) = histogram 10 vec
histSizes = V.toList sizes
print histSizes
Run Code Online (Sandbox Code Playgroud)
这很好用.但是现在当我尝试将一些东西抽象成函数时我不能.我尝试将第一个rawText放入自己的函数中,例如:
{-# LANGUAGE OverloadedStrings #-}
import Data.Text as T
import Data.Text.Internal.Search
import qualified Data.Vector as V
import qualified Data.Text.IO …Run Code Online (Sandbox Code Playgroud) 我想随机化给定文本中的所有单词,以便我可以输入一个英文文件
"The quick brown fox jumped over the lazy dogs."
Run Code Online (Sandbox Code Playgroud)
并输出:
"fox jumped lazy brown The over the dogs. quick"
Run Code Online (Sandbox Code Playgroud)
我能想到的最简单的方法是将文本导入python,将其放入一个数字序列作为键的字典中,然后将这些数字随机化并获得输出.是否有一种更简单的方法可以从命令行执行此操作,这样我就不必进行太多编程了?
在jupyter笔记本中,我可以跑
plt.style.use('ggplot')
Run Code Online (Sandbox Code Playgroud)
这允许我使用ggplot样式绘制图表.如何将此默认值设置为某个配置文件?
我正在尝试制作这样的数据框:
这是我到目前为止所拥有的:
labels = ['Rain', 'No Rain']
pd.DataFrame([[27, 63],[7, 268]], columns=labels, index=labels)
Run Code Online (Sandbox Code Playgroud)
看起来像这样:
但这不会创建父类别。如何将列标记为“实际天气”并将行标记为“预测”?
我只想尝试Haskell d3js包.这是我试过的:
stack install d3js
Run Code Online (Sandbox Code Playgroud)
但它给出了错误:
Error: While constructing the build plan, the following exceptions were encountered:
In the dependencies for d3js-0.1.0.0:
base-4.9.1.0 must match >=4.6 && <4.7 (latest applicable is 4.6.0.1)
Run Code Online (Sandbox Code Playgroud)
我试过stack install base-4.6.0.1,它没有输出任何东西,但完成没有错误,但我尝试时仍然得到相同的错误stack install d3js.
我也尝试过使用cabal:
$ cabal install d3js
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: d3js-0.1.0.0 (user goal)
next goal: base (dependency of d3js-0.1.0.0)
rejecting: base-4.9.1.0/installed-4.9... (conflict: d3js => base>=4.6 && <4.7)
rejecting: base-4.10.0.0, base-4.9.1.0, base-4.9.0.0, base-4.8.2.0,
base-4.8.1.0, base-4.8.0.0, base-4.7.0.2, …Run Code Online (Sandbox Code Playgroud) 所以我正在尝试在Haskell中编写一个数据库层,以与SQLite DB进行交互.我在关于数据库的章节中遵循了Real World Haskell一书中的指示.这是我到目前为止:
{-# LANGUAGE FlexibleContexts #-}
import Database.HDBC
import Database.HDBC.Sqlite3
db = "dev.db"
conn = connectSqlite3 db
getPerson person =
quickQuery' conn "select name from person where name like ?" [toSql person]
main :: IO ()
main = do
print $ getPerson "Michael"
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
Could not deduce (IConnection (IO Connection))
arising from a use of ‘quickQuery'’
from the context: convertible-1.1.1.0:Data.Convertible.Base.Convertible
a SqlValue
bound by the inferred type of
getPerson :: convertible-1.1.1.0:Data.Convertible.Base.Convertible
a SqlValue =>
a -> IO [[SqlValue]] …Run Code Online (Sandbox Code Playgroud) 我如何从Python中执行Haskell等效操作?
>>> "this is a test".find("test")
10
Run Code Online (Sandbox Code Playgroud)
编辑:基本上我有一些文字,例如:"这是一个测试".现在我有一个我想在该文本中找到的字符串,例如:"test".如何在"这是一个测试"中找到"测试"的字符偏移?
这是一个超级简单的问题,但我似乎找不到答案。假设我在 Haskell 中有一个元组列表,
myList = [("foo", 2), ("bar", 4), ("foo", 6), ("bar", 1)]
Run Code Online (Sandbox Code Playgroud)
我想按第一个元素对它们进行分组,然后在第二个元素上将它们相加,我该怎么做?
这个例子将输出 [("foo", 8), ("bar", 5)]