标签: cons

怎么做((AB).(CD))在lisp中

我试图弄清楚如何使用缺点来做到这一点:

((A . B) . (C . D))

每个利弊细胞中的位置(A . B)(C . D)位置

我试过这样做,(cons (cons 'a 'b) (cons 'c 'd))但它给了我这个:

((A.B) C . D)

我也试过这个:(cons (cons 'a 'b) (cons (cons 'c 'd) ()))但它给了我这个:

((A . B) (C . D))

知道怎么做到这一点?

lisp common-lisp cons

5
推荐指数
3
解决办法
421
查看次数

64位操作系统上的32位或64位应用程序?

我们正在开发一个由Java编写的swing应用程序,它只需要大约128MB的内存,并且在短期内我不会看到需要更多的内存,如4GB.以前我们总是提供3个不同的版本,一个用于32位Windows,一个用于32位Linux,另一个用于64位Linux,安装程序包含JRE.几周之前,任何人都没有使用64位版本,并且报告了OutOfMemoryException,因为该应用程序比32位版本消耗大约40-50%的内存.

我的问题是,如果应用程序永远不需要使用超过4GB的内存,我们是否需要为64位Linux提供64位版本?我们进行了一些快速测试,结果显示32位版本也适用于64位Linux.但我不确定我们可能会有什么缺点,例如性能和/或兼容性问题?

java 64-bit 32-bit cons

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

fsharp中的fst和3元组

你知道最好的方法吗:

let toTableau2D (seqinit:seq<'a*'b*'c>) =
   let myfst = fun (a,b,c) -> a
   let myscd = fun (a,b,c) -> b
   let mytrd = fun (a,b,c) -> c

   let inputd = seqinit |> groupBy2 myfst myscd
Run Code Online (Sandbox Code Playgroud)

必须有一个比重写fst更好的方法..

更新 在pad建议之后,我重写了将之前的'a*'b打包成单个结构我的代码现在看起来像

let toTableau (seqinit:seq<'a*'b>) =
  let inputd = seqinit |> Seq.groupBy fst |> toMap
  let keys =  seqinit |> Seq.map fst |> Set.ofSeq |> List.ofSeq
  ...
Run Code Online (Sandbox Code Playgroud)

f# tuples cons iterable-unpacking

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

在clojure语言中真正的是什么

实际上我想要完全理解clojure,特别是符号

(def a 1)
(type a)
;;=>java.lang.Long
(type 'a)
;;=>clojure.lang.Symbol
Run Code Online (Sandbox Code Playgroud)

我知道这type是一个函数,所以它的参数首先被评估,所以我完全理解为什么上面的代码以这种方式工作.在流动的代码中,我决定使用宏来延迟评估

 (defmacro m-type [x] (type x))
 (m-type a)
 ;;==>clojure.lang.Symbol
Run Code Online (Sandbox Code Playgroud)

我很好,但我不能理解的是:

 (m-type 'a)
 ;;=>clojure.lang.Cons
Run Code Online (Sandbox Code Playgroud)

为什么'a的类型是缺点

macros symbols clojure cons

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

Racket中多个值和普通元组之间的区别?

valueslistcons在Racket或Scheme 之间有什么区别?什么时候使用一个比另一个好?例如,如果quotient/remainder返回(cons _ _)而不是(values _ _)

scheme tuples multiple-value cons racket

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

Reason的缺点(::)运营商在哪里?

cons(::)运算符是1)在OCaml和类似语言中编写递归列表函数,以及2)列表上的模式匹配的基本部分.但是,我在Reason的有关cons的文档中找不到任何内容,在REPL中,这会引发错误:

Reason # let myList = [2, 3, 4];
let myList : list int = [2, 3, 4]
Reason # 1 :: myList;
Error: Syntax error
Run Code Online (Sandbox Code Playgroud)

是否有替代cons运营商?

ocaml pattern-matching cons reason

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

perl6的功能类似于"car cdr cons"中的方案?

我真的很喜欢perl6和计划.我想知道perl6中的函数是否与方案中的"cons,car,cdr"函数类似?我一直在做的事情很麻烦:

sub cons($a, $aList) { return flat($a, $aList); } # sometimes flat is undesired;
sub car($aList) { return first($aList); }
sub cdr($aList) { return tail($aList.elems - 1); }
Run Code Online (Sandbox Code Playgroud)

谢谢.

arrays cons perl6 cdr

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


F# 中没有 cons 运算符或柯里化 cons 函数?

我们可以在 F# 中编写3 + 4(+) 3 4并获得相同的结果,这适用于大多数运算符。

为什么 cons 运算符的::行为不同?例如,如果我跑

(::) 1 [2;3]

我得到

error FS0010: Unexpected symbol '::' in expression

而我想得到 [1;2;3]。

在相关说明中,为什么List.Cons不咖喱?没有类型的内置 cons 函数'T -> 'T list -> 'T list吗?

f# list cons

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

为什么论点的位置在 cons 中很重要?

简单代码:

> (cons null (cons 1 2))
'(() 1 . 2)
> (cons (cons 1 2)  null)
'((1 . 2))
Run Code Online (Sandbox Code Playgroud)

最初,我希望结果是一样的。我能想到一些含糊的解释,但也想听听知识渊博的人的强项。

为什么结果不一样?

lisp scheme list cons racket

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