小编Sno*_*all的帖子

检查Postgres JSON数组是否包含字符串

我有一张桌子来存储关于我的兔子的信息.它看起来像这样:

create table rabbits (rabbit_id bigserial primary key, info json not null);
insert into rabbits (info) values
  ('{"name":"Henry", "food":["lettuce","carrots"]}'),
  ('{"name":"Herald","food":["carrots","zucchini"]}'),
  ('{"name":"Helen", "food":["lettuce","cheese"]}');
Run Code Online (Sandbox Code Playgroud)

我该怎么找到喜欢胡萝卜的兔子?我想出了这个:

select info->>'name' from rabbits where exists (
  select 1 from json_array_elements(info->'food') as food
  where food::text = '"carrots"'
);
Run Code Online (Sandbox Code Playgroud)

我不喜欢那个查询.一团糟.

作为一名全职兔子守护者,我没有时间改变我的数据库架构.我只想喂我的兔子.是否有更可读的方式来执行该查询?

postgresql json postgresql-9.3

86
推荐指数
7
解决办法
7万
查看次数

伊德里斯急切评价

Haskell中,我可能会这样实现if:

if' True  x y = x
if' False x y = y
spin 0 = ()
spin n = spin (n - 1)
Run Code Online (Sandbox Code Playgroud)

表现我的期望:

haskell> if' True  (spin 1000000) ()  -- takes a moment
haskell> if' False (spin 1000000) ()  -- immediate
Run Code Online (Sandbox Code Playgroud)

Racket中,我可以实现这样的缺陷if:

(define (if2 cond x y) (if cond x y))
(define (spin n) (if (= n 0) (void) (spin (- n 1))))
Run Code Online (Sandbox Code Playgroud)

表现我的期望:

racket> (if2 …
Run Code Online (Sandbox Code Playgroud)

evaluation haskell lazy-evaluation expression-evaluation idris

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

为什么Django文档为静态文件建议一个单独的服务器?

mod_wsgi页面上Django:

我们建议使用一个单独的Web服务器 - 即一个不运行Django的服务器 - 用于服务媒体.

为什么?

apache django mod-wsgi http

18
推荐指数
4
解决办法
3227
查看次数

在Haskell中定义数据结构的建议

我在Haskell中建模数据结构时遇到了麻烦.假设我正在运行一个动物研究设施,我想跟踪我的老鼠.我想跟踪大鼠到笼子和实验的分配.我还想跟踪我的老鼠的体重,我的笼子的体积,并记录我的实验.

在SQL中,我可能会这样做:

create table cages (id integer primary key, volume double);
create table experiments (id integer primary key, notes text)
create table rats (
    weight double,
    cage_id integer references cages (id),
    experiment_id integer references experiments (id)
);
Run Code Online (Sandbox Code Playgroud)

(我意识到这允许我将来自不同实验的两只老鼠分配到同一个笼子里.这是有意的.我实际上并没有运行动物研究设施.)

必须可能做的两项操作:(1)给老鼠,找到它的笼子的体积,和(2)给老鼠,得到它所属的实验的注释.

在SQL中,那些将是

select cages.volume from rats
  inner join cages on cages.id = rats.cage_id
  where rats.id = ...; -- (1)
select experiments.notes from rats
  inner join experiments on experiments.id = rats.experiment_id
  where rats.id = ...; -- (2)
Run Code Online (Sandbox Code Playgroud)

我如何在Haskell中建模这个数据结构?


一种方法是

type Weight = Double …
Run Code Online (Sandbox Code Playgroud)

haskell

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

Haskell中的临时命名空间/上下文

Io中,您可以使用do以下命令设置执行上下文:

Http := Object clone
Http get := method(uri, ("<GET request to " .. uri .. ">") println)
Http delete := method(uri, ("<DELETE request to " .. uri .. ">") println)

Database := Object clone
Database insert := method(table, data, ("<insert data to " .. table .. ">") println)
Database delete := method(table, id, ("<delete " .. id .. " from " .. table .. ">") println)

Http do(
  get("http://example.com/")
  delete("http://example.com/something")
)

Database do(
  insert("cats", list("Phil", …
Run Code Online (Sandbox Code Playgroud)

dsl haskell namespaces

15
推荐指数
3
解决办法
892
查看次数

Ant没有使用`ant debug install`重建Android应用程序

从创建的干净项目开始:

android create project -n something -t android-7 -p something -k com.example.something -a Something
Run Code Online (Sandbox Code Playgroud)

当我ant debug install在我的模拟器中运行并打开应用程序时,我看到(正如预期的那样)

初始构建的模拟器截图

这就是它变坏的地方.我现在在应用程序中改变了一些微不足道的东西.在这个例子中,我setContentView将从主活动中删除调用,所以它看起来像这样:

package com.example.something;
import android.app.Activity;
import android.os.Bundle;
public class Something extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.main);   REMOVED
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我重建应用程序ant debug install并在模拟器中运行它.我看到了这个:

重建后的模拟器截图

这是错的.我刚刚删除了之前编辑的文本.如果我ant clean以前做过ant debug install,我会得到预期的结果:

重建后的预期结果

我不想ant clean在每次跑步之前跑步ant debug install.如何让ant实际重建程序而不是ant clean每次都运行?


细节:

这是inital的输出ant debug install:

$ ant debug install …
Run Code Online (Sandbox Code Playgroud)

ant android

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

RankNTypes和范围'forall'

这些有什么区别?

{-# LANGUAGE RankNTypes #-}

f :: forall a. a -> Int
f _ = 1

g :: (forall a. a) -> Int
g _ = 1
Run Code Online (Sandbox Code Playgroud)

特别是,为什么我会收到错误g ()

ghci> f ()
1
ghci> g ()
<interactive>:133:3:
    Couldn't match expected type `a' with actual type `()'
      `a' is a rigid type variable bound by
          a type expected by the context: a at <interactive>:133:1
    In the first argument of `g', namely `()'
    In the expression: g ()
    In an …
Run Code Online (Sandbox Code Playgroud)

haskell higher-rank-types

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

在Haskell中为左关联树实现`read`

我很难为树结构实现Read.我想要一个左关联字符串(与parens)喜欢ABC(DE)F并将其转换为树.该特定示例对应于树

树.

这是我正在使用的数据类型(虽然我愿意接受建议):

data Tree = Branch Tree Tree | Leaf Char deriving (Eq)
Run Code Online (Sandbox Code Playgroud)

那个特定的树将在Haskell中:

example = Branch (Branch (Branch (Branch (Leaf 'A')
                                         (Leaf 'B'))
                                 (Leaf 'C'))
                         (Branch (Leaf 'D')
                                 (Leaf 'E')))
                 (Leaf 'F')
Run Code Online (Sandbox Code Playgroud)

我的show功能如下:

instance Show Tree where
    show (Branch l r@(Branch _ _)) = show l ++ "(" ++ show r ++ ")"
    show (Branch l r) = show l ++ show r
    show (Leaf x) = [x]
Run Code Online (Sandbox Code Playgroud)

我想做一个read功能

read …
Run Code Online (Sandbox Code Playgroud)

haskell

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

查找给定开始和结束时间的并发事件数

我有一系列(~10 9)事件,其特点是开始和结束时间.有一段时间,我想知道当时正在进行的事件有多少.

在这种情况下,哪种数据结构会有所帮助?我需要快速的操作是:

  1. 插入新事件,例如{start: 100000 milliseconds, end: 100010 milliseconds}.
  2. 查询给定时间的并发事件数.

更新:有人在这上面放了一个计算几何标志,所以我想我应该用计算几何来改写它.我有一组1维间隔,我想计算这些间隔中有多少与给定点相交.插入新的间隔必须很快.

language-agnostic algorithm computational-geometry data-structures

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

用于n向量的Matlab/Octave单线程,在第i个位置具有1

例如,给定i=5n=8,我想生成[0;0;0;0;1;0;0;0].具体来说,我想生成向量,v以便:

v = zeros(n,1);
v(i) = 1;
Run Code Online (Sandbox Code Playgroud)

是否有(合理的)方法在一行中完成此操作?

matlab octave

8
推荐指数
3
解决办法
8209
查看次数