小编Mar*_*mán的帖子

如何有效地为 Graphviz 图制作动画?

我想为 Graphviz 生成的图形设置动画,更改节点标签以及节点和边缘颜色。

我正在使用这个Python 接口为 Graphviz创建图形。这样做的唯一方法似乎是独立创建每个图像(尽管帧之间的变化非常小)并将所有图像加入动画,如解释here

有没有更有效的方法来创建动画,避免独立创建所有这些图像?

python animation graph graphviz

8
推荐指数
2
解决办法
3311
查看次数

如何在Haskell中定义恒定异构流?

我了解如何在 Haskell 中定义同构流和异构流。

-- Type-invariant streams.
data InvStream a where
   (:::) :: a -> InvStream a -> InvStream a

-- Heterogeneous Streams.
data HStream :: InvStream * -> * where
   HCons :: x -> HStream xs -> HStream (x '::: xs)
Run Code Online (Sandbox Code Playgroud)

我们如何将恒定流定义为异构流的特殊情况?如果我尝试定义常量类型流的类型族,则会收到“归约堆栈溢出”错误。我想这与类型检查算法不够懒惰并试图计算整个Constant a类型流有关。

type family Constant (a :: *) :: InvStream * where
  Constant a = a '::: Constant a

constantStream :: a -> HStream (Constant a)
constantStream x =  HCons x (constantStream x)
Run Code Online (Sandbox Code Playgroud)

有什么方法可以解决这个问题并定义恒定的异构流吗?我应该尝试其他类似的结构吗?

haskell type-families coinduction

8
推荐指数
1
解决办法
162
查看次数

约束箭头 do 表示法

{-# LANGUAGE RebindableSyntax #-}\n{-# LANGUAGE Arrows #-}\n
Run Code Online (Sandbox Code Playgroud)\n

给定一些约束Foo,我想在FooArrows: 中使用可重新绑定的箭头 do 表示法,其中类型满足Foo。我们只能在Foo类型之间提升箭头,并且只能first在它们是foo类型的情况下使用它们进行张量。

\n
class FooArrow hom where\n  arr :: (Foo a) => (a -> b) -> hom a b\n  (>>>) :: (Foo a, Foo b, Foo c) => hom a b -> hom b c -> hom a c\n  first :: (Foo a, Foo b, Foo c) => hom a b -> hom (a, c) (b, c)\n\nreturnA :: …
Run Code Online (Sandbox Code Playgroud)

haskell

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

Haskell 上有 getInt 函数吗?

我想getInt :: IO Int在 Haskell 上有一个函数。这将是一个函数,它会从stdin 中获取一个整数,而使缓冲区的其余部分保持不变。

readLn :: IO Int例如,我发现的这种类型的库函数不适用于以下输入:

2
3 4
Run Code Online (Sandbox Code Playgroud)

因为它会采取整条生产线3 4,而不是采取3并留下4下一个getInt。虽然我知道我可以读取完整的字符串然后使用 分割它words,但我想问一下是否有一种不消耗缓冲区的方法。

标准库上有没有这样做的功能?有没有简单/明显的方法来创建getInt我失踪的?

io haskell

5
推荐指数
0
解决办法
5301
查看次数

约束蕴涵作为约束

如何将 Haskell 中的约束蕴涵编码为新约束?在我的示例中,我想要求每个都Functor c d f需要Obj c x暗示Obj c (f x). 我正在写约束forall x . Obj c x => Obj d (f x)

{-# LANGUAGE AllowAmbiguousTypes       #-}
{-# LANGUAGE KindSignatures            #-}
{-# LANGUAGE MultiParamTypeClasses     #-}
{-# LANGUAGE RankNTypes                #-}
{-# LANGUAGE ScopedTypeVariables       #-}
{-# LANGUAGE TypeApplications          #-}
{-# LANGUAGE TypeFamilies              #-}
{-# LANGUAGE QuantifiedConstraints     #-}

import Prelude hiding (id, Functor, fmap)
import Data.Kind

class Category c where                            
  type Obj c a :: Constraint …
Run Code Online (Sandbox Code Playgroud)

haskell ghc rank-n-types

5
推荐指数
0
解决办法
112
查看次数