小编Asa*_*din的帖子

所有固定大小的容器都是强幺半群函子,和/或反之亦然?

Applicative类型类代表松懈monoidal函子是保留对输入功能类别的笛卡尔monoidal结构。

换句话说,给定规范同构见证(,)形成幺半群结构:

-- Implementations left to the motivated reader
assoc_fwd :: ((a, b), c) -> (a, (b, c))
assoc_bwd :: (a, (b, c)) -> ((a, b), c)

lunit_fwd :: ((), a) -> a
lunit_bwd :: a -> ((), a)

runit_fwd :: (a, ()) -> a
runit_bwd :: a -> (a, ())
Run Code Online (Sandbox Code Playgroud)

类型类及其定律可以等价地写成这样:

class Functor f => Applicative f
  where
  zip :: (f a, f b) -> f (a, b)
  husk :: () -> f ()

-- …
Run Code Online (Sandbox Code Playgroud)

haskell functor category-theory applicative

9
推荐指数
3
解决办法
275
查看次数

关联类型家族和量化约束之间的交互

为什么是下面的代码:

class TheClass (t :: * -> * -> *)
  where
  type TheFamily t :: * -> Constraint

data Dict (c :: Constraint)
  where
  Dict :: c => Dict c

foo :: forall t a b.
  ( TheClass t
  , (forall x y. (TheFamily t x, TheFamily t y) => TheFamily t (t x y))
  , TheFamily t a
  , TheFamily t b
  ) => Dict (TheFamily t (t a b))
foo = Dict

-- NB: Only using `Dict` to …
Run Code Online (Sandbox Code Playgroud)

haskell typeclass quantified-constraints

9
推荐指数
0
解决办法
98
查看次数

为什么我找不到 NotQuiteCofree not-quite-comonad 的任何违法行为?

在 Twitter 上,Chris Penner 提出了一个有趣的comonad 实例,用于“使用默认值增强的地图”。相关的类型构造函数和实例在此处转录(具有外观差异):

data MapF f k a = f a :< Map k (f a)
  deriving (Show, Eq, Functor, Foldable, Traversable)

instance (Ord k, Comonad f) => Comonad (MapF f k)
  where
  extract (d :< _) = extract d

  duplicate :: forall a. MapF f k a -> MapF f k (MapF f k a)
  duplicate (d :< m) = extend (:< m) d :< M.mapWithKey go m
    where
    go :: k -> f …
Run Code Online (Sandbox Code Playgroud)

haskell category-theory comonad

9
推荐指数
1
解决办法
156
查看次数

用Javascript进行特征提取

我想知道是否有任何开源或免费库用于使用Javascript进行图像特征提取?我正在开发一个应用程序,我需要使用像SIFT这样的算法.在JS中实现起来很困难,我在JS中找不到一个好的SIFT实现.我想在JS中实现一个特征提取库,如果不存在的话.请任何人帮助我找到一个好的解决方案或指导我从头开始编写一个.

谢谢,克山.

javascript image-processing feature-extraction computer-vision sift

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

D3弧度梯度

我正在尝试使用d3创建一个计时器,其梯度将在0到100%之间变化.例如,深橙色为0%,浅橙色为100%.我可以在暗橙色和浅橙色之间进行弧形转换,但是在找到允许我对弧线应用渐变的任何问题时都会遇到问题.我想要实现的一个例子可以在下图中看到.

在此输入图像描述

一直在寻找/煎炸我的大脑试图实现这一天大约一天.

javascript svg gradient d3.js

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

每个替代的 Monad 都是可过滤的吗?

集合的范畴既是笛卡尔幺半群又是余笛卡尔幺半群。下面列出了见证这两个幺半群结构的典型同构的类型:

type x + y = Either x y
type x × y = (x, y)

data Iso a b = Iso { fwd :: a -> b, bwd :: b -> a }

eassoc :: Iso ((x + y) + z) (x + (y + z))
elunit :: Iso (Void + x) x
erunit :: Iso (x + Void) x

tassoc :: Iso ((x × y) × z) (x × (y × z))
tlunit :: Iso (() × x) …
Run Code Online (Sandbox Code Playgroud)

monads haskell filter category-theory alternative-functor

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

格拉姆施密特与R

以下是第1页中用于执行Gram Schmidt的MATLAB代码 http://web.mit.edu/18.06/www/Essays/gramschmidtmat.pdf

因为我没有MATLAB,所以我正在尝试使用R来执行此操作数小时和数小时.这是我的R

f=function(x){
m=nrow(x);
n=ncol(x);
Q=matrix(0,m,n);
R=matrix(0,n,n);

for(j in 1:n){
v=x[,j,drop=FALSE];

for(i in 1:j-1){
R[i,j]=t(Q[,i,drop=FALSE])%*%x[,j,drop=FALSE];
v=v-R[i,j]%*%Q[,i,drop=FALSE]
}

R[j,j]=max(svd(v)$d);
Q[,j,,drop=FALSE]=v/R[j,j]}

return(list(Q,R))}
Run Code Online (Sandbox Code Playgroud)

它继续说有两个错误:

v=v-R[i,j]%*%Q[,i,drop=FALSE] 
Run Code Online (Sandbox Code Playgroud)

要么

R[j,j]=max(svd(v)$d);
Run Code Online (Sandbox Code Playgroud)

我错误地将MATLAB代码转换为R ???是什么?

matlab r

7
推荐指数
4
解决办法
4680
查看次数

计算字符串中最大连续"a"的数量.Python 3

假设用户输入:

"daslakndlaaaaajnjndibniaaafijdnfijdnsijfnsdinifaaaaaaaaaaafnnasm"
Run Code Online (Sandbox Code Playgroud)

你将如何找到最高数量的连续"a",你将如何删除"a"并且只留下其中的2个而不是之前的大量数字.

我正在考虑将每个字母附加到一个新的空列表中,但我不确定这是正确的还是该怎么做.

我真的不知道从哪里开始,但这就是我的想法:

  1. 询问用户输入.
  2. 创建一个空列表
  3. 将输入中的每个字母附加到列表中

接下来我什么都不知道.

第二次编辑(沿着这些行):

sentence = input("Enter your text: ")
new_sentance = " ".join(sentence.split())
length = len(new_sentance)
alist = []
while (length>0):
    alist
print ()
Run Code Online (Sandbox Code Playgroud)

python sorting count python-3.x

7
推荐指数
2
解决办法
4453
查看次数

`Alt` 类型类的函子分布规律是微不足道的吗?

我一直在寻找法律的Alt类型类,它看起来像这样:

class Functor f => Alt f
  where
  (<!>) :: f a -> f a -> f a
Run Code Online (Sandbox Code Playgroud)

其中一项法律是这样的:

<$> left-distributes over <!>:  f <$> (a <!> b) = (f <$> a) <!> (f <$> b)
Run Code Online (Sandbox Code Playgroud)

更详细地说,这是:

fmap f $ (<!>) a b = (<!>) (fmap f a) (fmap f b)
Run Code Online (Sandbox Code Playgroud)

假设我们取消了<!>操作,即我们假设类是这样写的:

class Functor f => Alt f
  where
  alt :: (f a, f a) -> f a
Run Code Online (Sandbox Code Playgroud)

我们可以这样写一个组合器:

class Functor f => Alt …
Run Code Online (Sandbox Code Playgroud)

haskell functor free-theorem

7
推荐指数
1
解决办法
197
查看次数

添加约束会导致其他约束超出范围吗?

考虑以下代码,它进行类型检查:

module Scratch where

import GHC.Exts

ensure :: forall c x. c => x -> x
ensure = id

type Eq2 t = (forall x y. (Eq x, Eq y) => Eq (t x y) :: Constraint)

foo :: forall t a.
  ( Eq2 t
  , Eq a
  ) => ()
foo = ensure @(Eq (a `t` a)) ()
Run Code Online (Sandbox Code Playgroud)

foo在这里没有做任何有用的事情,但让我们想象一下它正在做一些需要Eq (t a a)实例的重要业务。编译器能够接受(Eq2 t, Eq a)约束并详细说明Eq (t a a)字典,因此解除约束并且一切正常。

现在假设我们想要foo做一些额外的工作,这取决于以下相当复杂的类的实例:

-- …
Run Code Online (Sandbox Code Playgroud)

haskell typeclass quantified-constraints

7
推荐指数
1
解决办法
178
查看次数