标签: traversal

在 Haskell 中如何使用两个映射来遍历 2 元组?

我有一个m支持以下操作的 monad:

someName :: (t1 -> m u1) -> (t2 -> m u2) -> ((t1, t2) -> m (u1, u2))
Run Code Online (Sandbox Code Playgroud)

用更像英语的方式来说:给定一个可用于将inbind转换为另一个映射的映射,用于另一对类型的映射,返回这两种类型对的映射。m t1m u1

这个概念有名字吗?它对所有 monad 都有明确定义吗?只有一些?没有,我的事实对于我正在研究的事实来说是错误的吗?


这让人想起traverseTraversables 的操作,只不过涉及两个映射。另外,traverse对于 2 元组似乎仅将映射应用于第二个元素:

ghci> f a = Just (a + 1)
ghci> traverse f (0, 1)
Just (0,2)
ghci> traverse f ("Hello", 1)
Just ("Hello",2)
Run Code Online (Sandbox Code Playgroud)

monads haskell traversal

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

一种acylic有向图的BFS遍历算法

我正在寻找一个优雅的Python程序,可以完成BFS的几个DAG:

A->B如果A"依赖于"B(考虑到python包Foo"取决于"Bar:Foo-> Bar),则节点A连接到B().

在约7000个这样的节点图,我想这样的,对于所有可能的所有节点进行排序(i, j),其中1>=i<j<=7000.. depends(Ni, Nj)是假.depends(A,B)= True当且仅当A->B或"A"依赖于"B .."并且Nxx在排序列表中的位置出现的节点.

注意:节点可以有多个父节点.例如:A-> C和B-> C. 因此,根据上述排序规则,A和B必须在C之前.

python algorithm dependencies traversal graph

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

使用jQuery,如何查找出现在另一个类之间的类的所有实例

例如:

<table>
  <tr class="highlight" id="click">
    <td>Rusty</td>
  </tr>
  <tr class="indent">
    <td>Dean</td>
  </tr>
  <tr class="indent">
    <td>Hank</td>
  </tr>
  <tr class="highlight">
    <td>Myra</td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

说当我点击带有id的hr时,click如何indent在下一个类实例之前找到所有类的实例highlight

javascript jquery traversal jquery-selectors

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

jQuery遍历div以上

有一些JQuery遍历和寻找一些辅助的问题..

如果我有以下HTML

<div id="1">
This is a div
</div>
<div id="2">
<a href="link">This is div 2</a>
</div>
Run Code Online (Sandbox Code Playgroud)

我想做的是,当我点击div 2中的链接时,是使用dom遍历向div1添加一个类,而不仅仅是直接引用div 1s id ....

非常感谢

jquery traversal

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

有没有办法判断我是否在Python中使用递归?

我正在编写一个函数来遍历用户的文件系统并创建一个表示该目录的树(树实际上是Tkinter中的TreeView小部件,但这在功能上是一棵树).

我能想到这样做的最好方法是递归.但是,我在函数中的一个案例要求我知道它是否是"原始"函数调用,在这种情况下文件没有父节点,或者它是否是"递归"函数调用,即一个已经调用的函数由函数本身创建,以便我可以为这些文件提供适当的父节点.

在Python中有没有办法问一个函数,"嘿,你是递归的吗?" 或者"嘿,你从哪里打来的?"

python tree recursion functional-programming traversal

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

获取特定元素后的所有相似元素,即使深度嵌套也是如此

我希望获得特定元素的所有复选框.此复选框位于不同的div和表中.我试过了:

$('.available').click(function() {
 $(this).nextAll("input:checkbox").each(function()
 {
   //code
 });
});
Run Code Online (Sandbox Code Playgroud)

谢谢

jquery traversal

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

jQuery nearest(),parents()和parent()会影响同一DOM级别的多个元素

我试图将DOM遍历到最近的DIV.下面的标记如下.

<div>
     <span>
           <a class="anchor">Text</a>
     </span>
</div>
<div>
     <span>
           <a class="anchor">Text</a>
     </span>
</div>
<div>
     <span>
           <a class="anchor">Text</a>
     </span>
</div>
Run Code Online (Sandbox Code Playgroud)

当我使用以下任何一项时:

$('.anchor').closest('div').css('background-color', 'red');
$('.anchor').parents('div').css('background-color', 'red');
$('.anchor').parent().parent().css('background-color', 'red');
Run Code Online (Sandbox Code Playgroud)

它影响所有的DIV,如下所示:

<div style="background-color: red">
     <span>
           <a class="anchor">Text</a>
     </span>
</div>
<div style="background-color: red">
     <span>
           <a class="anchor">Text</a>
     </span>
</div>
<div style="background-color: red">
     <span>
           <a class="anchor">Text</a>
     </span>
</div>
Run Code Online (Sandbox Code Playgroud)

如果我点击中间锚点我想要这个:

<div>
     <span>
           <a class="anchor">Text</a>
     </span>
</div>
<div style="background-color: red">
     <span>
           <a class="anchor">Text</a>
     </span>
</div>
<div>
     <span>
           <a class="anchor">Text</a>
     </span>
</div>
Run Code Online (Sandbox Code Playgroud)

我想我明白为什么closest()将所有三个DIV都匹配为最接近点击锚点的DIV,因为它通常匹配DIV.

但是在使用时,parents()或者parent()它不像其他DIV那样清晰,不是点击锚点的父级.但是我也可以看到它在DOM中的那个级别再次与DIV再次匹配.虽然在匹配时似乎 …

jquery parents traversal parent closest

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

在Perl中,如何在遍历哈希时跳过空键?

这是我的问题,我对Perl知之甚少,而且我有这个功能需要修复.

deviceModelMenu()调用此函数时,CLI将显示以下文本:

The following models are available
==================================================
1.   
2. Cisco1240 
3. Catalyst3750 
4. Catalyst3650 
5. HP2524 

第一项是空的,这是错误的,我需要修复它,显示此菜单的代码片段是:

my $features = shift;
print "=" x 50, "\n";
print "The following models are available\n";
print "=" x 50, "\n";
my $i=1;
foreach (keys %{$features->{features}[0]->{deviceModel}})
{
    print "$i. $_ \n";
    $i++;
}
Run Code Online (Sandbox Code Playgroud)

如果我添加以下行:

warn Dumper($features->{features}[0]->{deviceModel});
Run Code Online (Sandbox Code Playgroud)

它抛弃了这个:

$VAR1 = {
      'deviceModel' => {
                         '' => {
                                 'cfg' => []
                               },
                         'Cisco1240' => {
                                        'cfg' => [
                                                 'cisco1240feature.cfg'
                                               ]
                                      },
                         'Catalyst3750' => { …

perl hash traversal

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

遍历1D Numpy阵列进行群集

我有一个1维的numpy数组,其中每个元素的值i指向数组中的另一个索引.每个集群中心都有一个唯一的负(整数)值.目标是将每个元素分配给一个集群.

# Generated/pre-computed elsewhere
a = np.array([6, 8, 1, -1, 0, 3, -2, 4, -3, 10, 5])
Run Code Online (Sandbox Code Playgroud)

因此,聚类中心是元素3,6和8(因为它们具有负值)并且它们分别被标记为聚类-1,-2和-3.所以,从那以后

a[0] = 6 --> a[6] = -2, 
Run Code Online (Sandbox Code Playgroud)

然后a [0]可以指定为-2.同样,因为

a[5] = 3 --> a[3] = -1,
Run Code Online (Sandbox Code Playgroud)

然后a [5]可以指定为-1.遵循此逻辑,然后可以将所有元素分配给集群中心.结果数组将是:

[-2, -3, -3, -1, -2, -1, -2, -2, -3, -1, -1]
Run Code Online (Sandbox Code Playgroud)

我知道如何在纸上实现这一点,但我不知道如何在代码中实现这一点或在numpy中使用矢量化代码.

更新:根据下面unutbu的答案,我用for循环替换了while循环,以避免无限循环:

a = np.array([6, 8, 1, -1, 0, 3, -2, 4, -3, 10, 5])
for i in range(len(a)):
    mask = a >= 0
    if not mask.any(): break
    a[mask] …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy traversal

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

寻找所有可能的路径

我有一个问题,找到所有可能的路径.

AAAB

咩咩咩

ABBA

从起点0,0到终点2,3.我需要获得所有可能的路径.

我能做的可能动作是向下移动向右移动.

让我告诉你我被困在哪里.我正在尝试使用递归函数.从点0,0开始,每当我可以向右移动,只有当我必须向下移动时才向右移动.

我的递归函数:

public static move(int i,int j)
{
     if(possible(x,y+1))
    {
       move(x,y+1);
       move(x+1,y);
    }

}


public static bool possible(int i,int j)
        {
            if((i >=0 && i<3 ) && (j>=0 && j<4))
                return true;
            else
                return false;

        }
Run Code Online (Sandbox Code Playgroud)

不确定我的递归移动功能.仍然需要扩大它.我不知道应该如何实施.

我能够使用该移动方法遍历角节点但是我需要该函数在从角落右上角(0,4)到达所有可能的移动时回溯.

c# recursion traversal

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