小编oct*_*bus的帖子

怎么样:fin被使用?

在Clojure Koans中:fin用于atoms.clj.这是一个例子:

(def atomic-clock (atom 0))

  "Atomic atoms are atomic"
  (= 20 (do
          (compare-and-set! atomic-clock 100 :fin)
          @atomic-clock))
Run Code Online (Sandbox Code Playgroud)

我理解:fin是新的价值.但为什么要使用而不是数字呢?

我搜索了文档:fin正在使用,除了在Koans之外无法找到它的用途.

谢谢.

clojure

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

如何确定scanf是否读取格式中指定的内容?

我有一个定义变量的程序 int data

该程序用于 scanf("%d",&data)从stdin读取数据.如果来自stdin的数据不是整数,我必须打印错误消息.

我试过了 if(scanf("%d",&data) ==EOF){ printf("error");return 1;}

它对我没用.那么,我如何确定scanf是否失败或成功?

c integer scanf

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

构造Clojure defmulti/defmethod

我错过了关于defmulti和defmethod的重要观点.我读过几本书对defmulti的解释,我仍然感到困惑.

我想得到一个随机值,取决于它是一个交易还是100.00这样的金额

我想调用(random-val)并返回avail-trans值或随机小数.我已经尝试将函数放在一个映射中,但是我得到了相同的值,用于avail-trans,一个\ B.

(def^:dynamic map-val {:trans (random-trans) :amt (random-amount)})
Run Code Online (Sandbox Code Playgroud)

这是显示我正在做的不起作用的最小代码量.我很感激任何指针或帮助.

(def^:dynamic avail-trans [\B \W \D \A])

(defn random-trans 
    [] 
    (nth avail-trans (.nextInt random (count avail-trans))))

(defn random-amount
    []
    (float (/ (.nextInt random (count (range 1 10000))) 25 )))
Run Code Online (Sandbox Code Playgroud)

以下构造不正确,但我不确定为什么或如何解决问题:

(defmulti random-val :val-type)

(defmethod random-val :trans []
    (random-trans))

(defmethod random-val :amt []
    (random-amount))
Run Code Online (Sandbox Code Playgroud)

调用(random-val :trans)导致此错误:

java.lang.IllegalArgumentException:multimethod'random-val'中没有用于调度值的方法:null(NO_SOURCE_FILE:0)

clojure

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

Perl typeglobs和Real References:如果我写入\*STDOUT而不是*STDOUT,我会得到什么?

如果我写一个真正的引用\*STDOUT而不是类似的类型,我会得到什么*STDOUT

perl

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

如何将多个序列中的每个元素交织成向量

我想从下面返回的序列的每个元素创建一个向量(vector.我知道(vector得到我想要的东西是错误的.它只是一个占位符.

我正在努力学习如何从三个序列中取出第一个元素并得到["abc-de-fghi"smith barney] [def-hi-jklm"ox todd],然后是第二个元素,第三个,依此类推.

谢谢您的帮助.

(defn test-key-exclusion
    "This function takes csv-data1 (the includees) and tests to see
     if each includee is in csv-data2 (the includeds). This function
     also gathers enough other data, so that excludees (those not found),
     can be identified."

    [csv-data1 pkey-idx1 csv-data2 pkey-idx2 lnam-idx fnam-idx]

    (let [full-row-ret (map #(ret-non-match-rows csv-data2 pkey-idx2 pkey-idx1 %1) csv-data1)
          filtered-row-ret (filter (complement nil?) full-row-ret)]
        filtered-row-ret
        (vector     (map #(nth %1 pkey-idx1 nil)  filtered-row-ret)
                    (map #(nth %1 lnam-idx nil)   filtered-row-ret) …
Run Code Online (Sandbox Code Playgroud)

clojure

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

如何正确使用线程宏?

我的问题是如何让Clojure的一个线程宏在我的特定情况下工作?谢谢.

我收到此错误:

(IllegalArgumentException Don't know how to create ISeq from: 
bene_csv.core$test_key_exclusion$fn__346  clojure.lang.RT.seqFrom (RT.java:487)
Run Code Online (Sandbox Code Playgroud)

当我调用此函数时:

bene-csv.core=> (test-key-exclusion bene-data 1 gic-data 0 2 3)
Run Code Online (Sandbox Code Playgroud)

鉴于此代码 - 没有线程宏的工作解决方案被注释掉 -

(defn ret-non-match-rows
    "Expects a sequence of sequences, like what is returned from clojure-csv.
     Returns nil if there's a match; else returns failing row."

    [s-o-s cmp-col-idx inq-row-idx inq-row]

    (let [inq-row inq-row]
        (loop [[row & remain-seq] s-o-s pos 0]
            (let [cmp-val (nth inq-row inq-row-idx nil)]
            (cond
                (not row) inq-row
                (= cmp-val (nth row cmp-col-idx)) nil
                :not-found …
Run Code Online (Sandbox Code Playgroud)

clojure

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

声明"int t [0];"的目的是什么?服务?

以下声明的目的是什么?

struct test
{
     int field1;
     int field2[0];
};
Run Code Online (Sandbox Code Playgroud)

c c99

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

是否存在vim或gVim命令来在括号中复制文本?

在下面的代码片段中,如果我转到以(该行开头的第一个左括号(spit

(defn missing-accts 
    "Prints accounts found in one report but not the other."

    [report-header mapped-data out-file]
    (spit out-file (str "\n\n    " 
          (count mapped-data) 
          "   " report-header 
          "\n\n") :append true)
          .
          .
          .
Run Code Online (Sandbox Code Playgroud)

vim突出显示第一个(和右)括号.

有没有,如果有的话,什么是vim命令会抽出整个spit命令?

谢谢.

vim

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

编译后,一个程序可以假设运行而无需调用eval吗?

我正在学习Clojure是如何工作的,我想知道是否有可能(只是为了理解Clojure和Lisps方言一般如何工作)来编译Clojure程序然后运行它"禁止"使用eval.

请注意,我不会问,在技术上是否可能,例如,hotpatch正在运行的Clojure程序,以便一旦编译了Clojure程序,就会抛出异常,如果eval被调用的话.

我要问的是,如果技术上可以禁止使用eval,那么大多数Clojure程序不使用REPL而不是特定的eval仍然可以工作吗?

或者是在运行时使用eval的默认/内置API /宏/函数?

lisp macros eval clojure

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

如何使用sed从第一行删除第一个字符

我有三个.csv文件,通过在MS SQLServer中保存查询输出.我需要将这些文件加载​​到Informix数据库中,这需要使用尾随分隔符.使用sed很容易做到

s/$/,/g

但是,这些文件中的每一个还包含(如vim所示,但不是ed或sed)a在第一行的第一个字符位置.

我需要摆脱这个角色.它使用vim的x命令删除为一个字符.如何使用sed描述此字符,以便我可以删除它而不删除该行.

我试过了1s/^.//g,但那不行.

csv sed sql-server-2008

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

标签 统计

clojure ×5

c ×2

c99 ×1

csv ×1

eval ×1

integer ×1

lisp ×1

macros ×1

perl ×1

scanf ×1

sed ×1

sql-server-2008 ×1

vim ×1