标签: sequence

进入或vec:在Clojure中将序列转换回向量

我有以下代码,它增加了向量中每对的第一个元素:

(vec (map (fn [[key value]] [(inc key) value]) [[0 :a] [1 :b]]))
Run Code Online (Sandbox Code Playgroud)

但是我担心这个代码不够优雅,因为它首先使用map创建一个序列,然后将其转换回矢量.

考虑这个类比:

(into [] (map (fn [[key value]] [(inc key) value]) [[0 :a] [1 :b]]))
Run Code Online (Sandbox Code Playgroud)

在#clojure@irc.freenode.net上有人告诉我,使用上面的代码是不好的,因为into扩展到了(reduce conj [] (map-indexed ...)),在这个过程中产生了许多中间对象.然后我被告知实际上into并没有扩展到(reduce conj ...)可能的时候使用瞬态.同时测量经过的时间显示into实际上比...更快vec.

所以我的问题是:

  1. 使用map矢量的正确方法是什么?
  2. 当我使用vecinto向量时,下面会发生什么?

相关但不重复的问题:

vector clojure sequence

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

在给定开始、结束和步骤的情况下生成 List<Double> 值序列的最佳方法?

我实际上很惊讶我无法在这里找到答案,尽管我可能只是使用了错误的搜索词或其他东西。我能找到的最接近的是this,但他们询问生成double具有特定步长的特定范围的s ,答案是这样处理的。我需要一些可以生成具有任意开始、结束和步长的数字的东西。

我算起来也是在图书馆这样的一些方法已经某处,但如果让我无法轻松地找到它(再次,也许我只是用错了搜索词或某事)。所以这是我在过去几分钟里自己做的事情:

import java.lang.Math;
import java.util.List;
import java.util.ArrayList;

public class DoubleSequenceGenerator {


     /**
     * Generates a List of Double values beginning with `start` and ending with
     * the last step from `start` which includes the provided `end` value.
     **/
    public static List<Double> generateSequence(double start, double end, double step) {
        Double numValues = (end-start)/step + 1.0;
        List<Double> sequence = new ArrayList<Double>(numValues.intValue());

        sequence.add(start);
        for (int i=1; i < numValues; i++) {
          sequence.add(start + step*i);
        } …
Run Code Online (Sandbox Code Playgroud)

java double sequence

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

Oracle序列,但随后在MS SQL Server中

在Oracle中,有一种生成序列号的机制,例如:

CREATE SEQUENCE supplier_seq

    MINVALUE 1
    MAXVALUE 999999999999999999999999999
    START WITH 1
    INCREMENT BY 1
    CACHE 20;
Run Code Online (Sandbox Code Playgroud)

然后执行该语句

supplier_seq.nextval
Run Code Online (Sandbox Code Playgroud)

检索下一个序列号.

您将如何在MS SQL Server中创建相同的功能?

编辑:我不是在寻找自动生成表记录密钥的方法.我需要生成一个唯一值,我可以将其用作进程的(逻辑)ID.所以我需要Oracle提供的确切功能.

sql-server oracle sequence

14
推荐指数
3
解决办法
2万
查看次数

常见的lisp cons从两个符号创建一个列表,clojure cons需要一个seq来构建?

(免责声明 - 我知道Seqs在Clojure中的重要性)

在常见的lisp中,cons函数可用于将两个符号组合成一个列表:

(def s 'x)
(def l 'y)
(cons s l)
Run Code Online (Sandbox Code Playgroud)

在clojure中 - 你只能使用一个序列 - 缺点还没有扩展到使用两个符号.所以你必须写:

(def s 'x)
(def l 'y)
(cons s '(l))
Run Code Online (Sandbox Code Playgroud)

在Clojure中有更高级别的模式可以解释Common LISP和Clojure之间的这种差异吗?

lisp clojure common-lisp sequence cons

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

从查询中使用START WITH创建序列

如何创建一个序列,其中START WITH值来自查询?

我正在尝试这种方式: CREATE SEQUENCE "Seq" INCREMENT BY 1 START WITH (SELECT MAX("ID") FROM "Table");

但是,我收到ORA-01722错误

oracle plsql sequence oracle9i ora-01722

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

如何预先定义junit测试用例的运行顺序?

我在java中有一个测试类,有几个@Test注释的方法,不知何故,我想在方法B之前运行方法A,当我运行整个测试时.有可能还是必要的?

java junit sequence

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

Doctrine2没有将序列设置为id列的默认值(postgres)

只是一个简单的例子:如果我想在postgres中创建一个带有自动填充id的表,我运行这个sql:

CREATE SEQUENCE person_id_seq  START 1;

CREATE TABLE person (
    id         integer PRIMARY KEY DEFAULT nextval('person_id_seq'),
    name       varchar(100) NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

在学说中我设置了所有财产

class Person {

/**
 * @Id
 * @Column(type="integer", nullable=false)
 * @GeneratedValue(strategy="SEQUENCE")
 * @SequenceGenerator(sequenceName="person_id_seq", initialValue=1, allocationSize=100)
 */
private $id;
Run Code Online (Sandbox Code Playgroud)

但是当我生成sql(php doctrine orm:schema-tool:create --dump-sql)时,我得到了它:

CREATE TABLE person (
    id INT NOT NULL,
    name VARCHAR(100) NOT NULL
);
CREATE SEQUENCE person_id_seq INCREMENT BY 100 MINVALUE 1 START 1
Run Code Online (Sandbox Code Playgroud)

但不要将其设置为默认值

\ d人

      Column       |              Type              | Modifiers
-------------------+--------------------------------+-----------
 id                | integer                        | …
Run Code Online (Sandbox Code Playgroud)

php postgresql sequence doctrine-orm

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

PHP Postgres:获取上次插入ID

我在这个主题上发现了其他一些问题.这个...

mysql_insert_id替代postgresql

...... 手册似乎表明你可以随时打电话lastval(),它会按预期工作.但这一个......

Postgresql和PHP:在多用户应用程序中,currval是一种检索最后一行插入id的有效方法吗?

......似乎表明它必须在交易中.所以我的问题是这样的:我可以在查询之前等待我喜欢的lastval()(没有交易)吗?面对许多并发连接,这是可靠的吗?

php sql postgresql sequence last-insert-id

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

选项列表:相当于Scala中的序列?

什么是sequenceScala中的Haskell ?我想将选项列表转换为列表选项.它应该像None任何选项一样出现None.

List(Some(1), None, Some(2)).???     --> None
List(Some(1), Some(2), Some(3)).???  --> Some(List(1, 2, 3))
Run Code Online (Sandbox Code Playgroud)

haskell scala sequence

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

检测序列是否是Python中子序列的倍数

我有一个零和一元组,例如:

(1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1)
Run Code Online (Sandbox Code Playgroud)

事实证明:

(1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1) == (1, 0, 1, 1) * 3
Run Code Online (Sandbox Code Playgroud)

我想要一个函数f,使得if s是一个零和一的非空元组,f(s)是最短的子元素r,s == r * n对于某些正整数n.

所以,例如,

f( (1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1) ) == (1, 0, 1, 1)
Run Code Online (Sandbox Code Playgroud)

f在Python中编写函数的方法是什么?

编辑:

我目前使用的天真方法

def f(s):
  for i in range(1,len(s)): …
Run Code Online (Sandbox Code Playgroud)

python algorithm sequence

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