小编sto*_*ont的帖子

如何在Haskell中获取已创建进程的进程ID?

也许我只是缺少System.Process API(http://hackage.haskell.org/package/process)中显而易见的东西,但它似乎不支持获取创建的进程的原始PID.API通常返回一个可以很容易使用的ProcessHandle,但这似乎不能满足我的部署需求.

我有一个案例,我想生成一个长时间运行的进程,记录它正在使用的PID,并能够在以后的某个时间(几天,几周,几个月)自动返回并杀死旧进程并重新启动新进程.我确信有几种方法可以执行此自动部署和重新启动,但PID似乎是最简单的方法,没有太多依赖于平台的代码.

我对其基本问题的其他建议持开放态度,但对我来说似乎很奇怪,我在流程API中找不到任何直接PID引用(或转换为它们的方法).这似乎是对API的疏忽.

haskell

6
推荐指数
1
解决办法
839
查看次数

用索引位置填充二维 numpy 数组

我一直在尝试找出一种干净的 Pythonic 方法,用该元素的索引值填充空 numpy 数组的每个元素,而不使用 for 循环。对于一维,这很容易,您可以使用类似np.arange或基本的range. 但是在二维和更高维度上,我很难做到这一点。

(编辑:或者只是建立一个像这样的常规列表,然后np.array(lst)它。我想我刚刚回答了我的问题 - 使用列表理解?)

例子:

rows = 4
cols = 4
arr = np.empty((rows, cols, 2))  # 4x4 matrix with [x,y] location

for y in range(rows):
    for x in range(cols):
        arr[y, x] = [y, x]

'''
Expected output:
[[[0,0], [0,1], [0,2], [0,3]],
 [[1,0], [1,1], [1,2], [1,3]],
 [[2,0], [2,1], [2,2], [2,3]],
 [[3,0], [3,1], [3,2], [3,3]]]
'''
Run Code Online (Sandbox Code Playgroud)

python numpy

5
推荐指数
1
解决办法
3227
查看次数

Haskell ADTs与aeson

我一直在用一个简单的ADT进行战斗,试图让它来回往返JSON,但我没有运气,无论我如何尝试按摩或修改类型.我错过了什么?

编译时,我总是得到相同的运行时错误:

> let t = Fahrenheit
> fromJSON $ toJSON t
Error "when expecting a (), encountered Object instead"
Run Code Online (Sandbox Code Playgroud)

尝试这个只是给了我"没什么",大概是因为同样的错误:解码$ encode t

我试图按照这些来源,但我似乎无法解决 这个运行时错误,无论我尝试什么: Haskell :: Aeson ::基于字段值解析ADT https://www.fpcomplete.com/用户/ Geraldus /代数-数据-类型,ADTS与-埃宋

这是我正在使用的代码的一种形式.起初,我试图将此作为嵌入在另一种类型中的类型,但是当这不起作用时,我添加了"值"键以尝试使这更容易解析(没有运气).

data TemperatureType = Celsius
                     | Fahrenheit
                     deriving (Show,Read,Typeable,Data,Eq)

-- This doesn't work either
-- $(deriveJSON defaultOptions ''TemperatureType)

instance ToJSON TemperatureType where
   toJSON Fahrenheit = object [ "value" .= String "Fahrenheit" ]
   toJSON Celsius    = object [ "value" .= String "Celsius" ]

instance FromJSON TemperatureType where
    parseJSON …
Run Code Online (Sandbox Code Playgroud)

haskell aeson

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

标签 统计

haskell ×2

aeson ×1

numpy ×1

python ×1