小编Ily*_*nov的帖子

在Haskell中一般遍历树的最简单方法

假设我使用language-javascript库在Haskell中构建AST。AST具有不同类型的节点,并且每个节点可以具有这些不同类型的字段。每个类型可以具有许多构造函数。(所有类型的实例DataEqShow)。

我想计算树中每种类型的构造函数的出现。我可以使用它toConstr来获得构造函数,理想情况下,我会先创建一个Tree -> [Constr]函数fisrt(然后计数很容易)。

有不同的方法可以做到这一点。显然,模式匹配太冗长了(使用9-28个构造函数可以想象3种类型)。

因此,我想使用通用遍历,并尝试在SYB库中找到解决方案。

  1. 有一个everywhere函数不适合我的需求,因为我不需要Tree -> Tree转换。
  2. 存在gmapQ,就其类型而言似乎很合适,但事实证明它不是递归的。
  3. 到目前为止,最可行的选择是everywhereM。它仍然会进行无用的转换,但是我可以使用Writer来收集toConstr结果。不过,这种方式确实感觉不正确。

是否有其他选择不会执行无用的转换(对于此任务),而仍然提供构造函数的列表?(它们在树中出现的顺序暂时不重要)

generics haskell abstract-syntax-tree tree-traversal

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

Rails根据操作隐藏表单字段

我正在创建一个具有多个字段的表单,其中一个字段应该具有默认值,如果正在创建资源,则该字段不可见.但如果正在编辑,则应显示该字段.所以我尝试这样的事情:

<%= form_for(@task) do |f| %>
    <div class="field" id="v_field">
    <%= f.label :v_field, "Always visible field." %>
    <%= f.text_field :status %>
  </div>
  <% if params[:action] != "new" %>
    <div class="field" id="default_field">
    <%= f.label :default_field, "Default field (should be invisible for new resources only)." %>
    <%= f.text_field :status %>
  </div>
  <% end
<% end %>
Run Code Online (Sandbox Code Playgroud)

但它不起作用.此外,我试图改变这样的控制器设置:

format.html { :except => [:default_field] }
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

请告诉我,在这种情况下我应该使用什么比较?谢谢.

ruby forms ruby-on-rails-3

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

为什么正则表达式中的转义字符不匹配?

  1. 如果我想匹配点符号(.)我必须写这个正则表达式:

    /\./

需要转义字符才能匹配符号本身.

  1. 如果我想匹配'd'符号,我必须写下这个:

    /d/

被转义字符不是需要把自己与符号匹配.

如果我想匹配任何字符(/./)或任何数字字符(/\d/),反之亦然.

在我看来,这种方法并不十分一致.支持它的原因是什么?

谢谢.

regex

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

创建一个小提琴图的正确方法是什么,其中一把小提琴按色调分开?

创建一个小提琴图的正确方法是什么hue

我尝试了不同的方法,似乎唯一的方法是为数据集中的每个条目创建一个共享相同值的特征。并将该功能的名称作为x.

fig = plt.figure(figsize=(20, 8))

fig.add_subplot(1, 3, 1)
ax = sns.violinplot(x='feature', y='height',
              data=train_cleansed_height,
              scale='count',
              hue='feature', split=True,
              palette='seismic',
              inner='quartile')

fig.add_subplot(1, 3, 2)
ax = sns.violinplot(x='workaround', y='height',
              data=train_cleansed_height,
              scale='count',
              hue='feature', split=True,
              palette='seismic',
              inner='quartile')

fig.add_subplot(1, 3, 3)
ax = sns.violinplot(x=None, y='height',
              data=train_cleansed_height,
              scale='count',
              hue='feature', split=True,
              palette='seismic',
              inner='quartile')
plt.xlabel('x=None')
Run Code Online (Sandbox Code Playgroud)

小提琴情节示例

但这是正确的方法吗?

python matplotlib python-3.x seaborn violin-plot

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

Google Spreadsheet的Query函数按顺序返回空数据

Google Spreadsheet的Query函数返回空数据,顺序为。这是正常工作的查询:

=QUERY('OtherListName'!A1:C;"Select A, B, C";1)
Run Code Online (Sandbox Code Playgroud)

该查询返回的正是您所期望的:范围A1:C的内容(在我的情况下为6行)。然后,我尝试订购返回的数据:

=QUERY('OtherListName'!A1:C;"Select A, B, C order by A, B";1)
Run Code Online (Sandbox Code Playgroud)

该查询仅返回第一行(包含标题),仅此而已。OtherListName中的原始数据集仅包含字符串和整数。

我想要的是获取按列A然后按列B排序的数据。这两列都只包含字符串。对应的整数在列C中。

请分享一些建议,我还没有找到任何东西。同时,我将继续实验以找出此“错误”的原因。谢谢。

google-sheets google-sheets-query

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