我想下载一堆用ISO-8601日期命名的文件.使用bash + GNU coreutils有一种简单的方法吗?(或者让wget/curl自动生成列表的一些技巧,但我发现这不太可能)
与此问题类似,但不限于工作日:如何使用bash中提供的工具生成一系列非周末日期?.我想有一种更简单的方法可以在没有这种限制的情况下做到这一点.
还与如何在bash上生成随机数据的日期范围有关,但不限于一年.
是否可以从fundep类创建类型族实例?例如,假设我有课
\n\nclass A a b | a -> b\nRun Code Online (Sandbox Code Playgroud)\n\n有一些实例(导入外部库)并希望为该类型系列创建所有相应的实例
\n\ntype family A' a :: *\nRun Code Online (Sandbox Code Playgroud)\n\n这样A' a ~ biff A a b,无需从外部源手动复制和修改实例。
我该怎么做(如果可能的话)?
\n\n迄今为止我最有希望的尝试,
\n\nclass A' a where\n type A'_b a :: *\n\ninstance forall a b. A a b => A' a where\n type A'_b a = b\nRun Code Online (Sandbox Code Playgroud)\n\n给出错误消息
\n\n The RHS of an associated type declaration mentions \xe2\x80\x98b\xe2\x80\x99\n All such variables must be bound on the …Run Code Online (Sandbox Code Playgroud) 我刚刚阅读了使用await和async关键字在C#5.0中处理异步函数的新方法.从等待的C#参考考试:
private async Task SumPageSizesAsync()
{
// To use the HttpClient type in desktop apps, you must include a using directive and add a
// reference for the System.Net.Http namespace.
HttpClient client = new HttpClient();
// . . .
Task<byte[]> getContentsTask = client.GetByteArrayAsync(url);
byte[] urlContents = await getContentsTask;
// Equivalently, now that you see how it works, you can write the same thing in a single line.
//byte[] urlContents = await client.GetByteArrayAsync(url); …Run Code Online (Sandbox Code Playgroud) 我知道我可以使用 nix-env 搜索 Haskell 包
nix-env -f '<nixpkgs>' -qaP -A haskellPackages name_of_package
Run Code Online (Sandbox Code Playgroud)
但这很慢而且没有缓存。如果我尝试使用新命令,nix search所有 Haskell 包都被隐藏。
$ nix search aeson
error: no results for the given search term(s)!
Run Code Online (Sandbox Code Playgroud)
是否可以使用新nix search命令搜索 Haskell 包?如果是这样,如何?
编辑:我在这个irc 日志中发现了一些关于这个的讨论,但我不太明白这些建议在实践中的含义。具体这部分:
20:49 <duairc> How do I make nix search include haskellPackages?
20:52 <ottidmes> duairc: you might try and call recurseIntoAttrs on haskellPackages
20:52 <rain1> thanks
20:52 <LnL> rain1: nix-env -f '<nixpkgs>' -qaP -A haskellPackages
20:54 <gchristensen> duairc: ^
20:54 <duairc> …Run Code Online (Sandbox Code Playgroud) 我已经构建了一个小型的UDP/protobuf发送器和接收器.我花了一个上午的时间试图找出protobuf解码产生错误的原因,结果却发现发送器(Spoke.hs)发送的数据不正确.
用于unpack将Lazy.ByteStrings转换为网络包将发送的字符串的代码.我unpack在Hoogle 找到了.它可能不是我正在寻找的功能,但它的描述看起来合适:"O(n)将ByteString转换为字符串."
Spoke.hs产生以下输出:
chris@gigabyte:~/Dropbox/haskell-workspace/hub/dist/build/spoke$ ./spoke
45
45
["a","8","4a","6f","68","6e","20","44","6f","65","10","d2","9","1a","10","6a","64","6f","65","40","65","78","61","6d","70","6c","65","2e","63","6f","6d","22","c","a","8","35","35","35","2d","34","33","32","31","10","1"]
Run Code Online (Sandbox Code Playgroud)
虽然wireshark告诉我数据包中的数据是:
0a:08:4a:6f:68:6e:20:44:6f:65:10:c3:92:09:1a:10:6a:64:6f:65:40:65:78:61:6d:70:6c:65:2e:63:6f:6d:22:0c:0a:08:35:35:35:2d:34:33:32:31:10
Run Code Online (Sandbox Code Playgroud)
Spoke.hs和Wireshark的长度(45)是相同的.
Wireshark缺少最后一个字节(值0x01),中心值流不同(在Wireshark中大一个字节).
"65","10","d2","9"在Spoke.hs和65:10:c3:92:09Wireshark中.
由于0x10是DLE,它让我感到震惊,可能正在进行一些转义,但我不知道为什么.
我对Wireshark有多年的信任,只有几十个小时的Haskell经验,所以我认为这是错误的代码.
任何建议赞赏.
-- Spoke.hs:
module Main where
import Data.Bits
import Network.Socket -- hiding (send, sendTo, recv, recvFrom)
-- import Network.Socket.ByteString
import Network.BSD
import Data.List
import qualified Data.ByteString.Lazy.Char8 as B
import Text.ProtocolBuffers.Header (defaultValue, uFromString)
import Text.ProtocolBuffers.WireMessage (messageGet, messagePut)
import Data.Char (ord, intToDigit)
import Numeric
import Data.Sequence ((><), fromList)
import AddressBookProtos.AddressBook
import AddressBookProtos.Person
import AddressBookProtos.Person.PhoneNumber
import AddressBookProtos.Person.PhoneType
data UDPHandle = …Run Code Online (Sandbox Code Playgroud) 我有一个执行长时间计算的程序,其结果显示为绘图.我目前正在使用Chart-0.14.我想显示部分结果,并在计算过程中更新.
Graphics.Rendering.Chart.Gtk.updateCanvas :: Renderable a -> DrawingArea -> IO Bool似乎这样做,但我没有找到任何方法从剧情中获得DrawingArea.该函数renderableToWindow :: Renderable a -> Int -> Int -> IO ()不返回任何内容(并且在窗口关闭之前它不会返回).
我想做类似以下的事情:
main = do
drawingArea = forkRenderableToWindow (toRenderable $ plotLayout $
plot [0,0.1..10] sin "sin(x)") 640 480
updateCanvas (toRenderable $ plotLayout $ plot [0,0.1..10] sin "sin(x)") drawingArea
Run Code Online (Sandbox Code Playgroud)
我该怎么做?我是否需要在Graphics.Rendering.Chart.Gtk一个版本中重新实现函数,DrawingArea以及以某种方式返回(我将如何执行此操作?forkIO?)立即返回而不关闭窗口?