我有一个包含URL的XML文件.
我想添加案例,因为我每次都需要一个不同的URL.
我知道我可以用Java做到这一点,但我现在不想改变我的Java代码.
我很困惑.这是我的代码:
use strict;
use warnings;
use Test::More;
subtest 'huh?' => sub {
my $i = 0;
eval {
$i++;
} || do {
$i++;
};
is($i, 1, "only execute one branch (i: $i)");
};
&done_testing();
Run Code Online (Sandbox Code Playgroud)
这是我的测试输出(当使用ActivePerl 5.12,Mac OS X运行时):
not ok 1 - only execute one branch (i: 2)
# Failed test 'only execute one branch (i: 2)'
# at test.pl line 14.
# got: '2'
# expected: '1'
1..1
# Looks like you failed 1 test of 1.
not …
Run Code Online (Sandbox Code Playgroud) 例:
select count(*) from my table
where
column1 is not null
and
(column1 = 4 OR column1 = 5)
Run Code Online (Sandbox Code Playgroud)
例2:
select count(*) from my table
where
column1 is not null
and
column1 = 4 OR column1 = 5
Run Code Online (Sandbox Code Playgroud)
在我的数据库中有真正的列名,我得到两个不同的结果.带括号的那个是对的,因为如果我这样做:
select count(*) from my table
where
column1 is not null
and
column1 = 4
Run Code Online (Sandbox Code Playgroud)
然后
select count(*) from my table
where
column1 is not null
and
column1 = 5
Run Code Online (Sandbox Code Playgroud)
并将它们加在一起,我得到正确答案......我想.与上面括号的第一个示例相同.
为什么通过更改OR测试的优先级会得到不同的结果?
在Lisp中(我仍在使用SBCL学习Lisp),声明了局部变量let
,范围仅在该表达式中.这是为什么?与其他命令式语言(如C/C++/Java ...)不同,我们可以在其功能范围内的任何位置自由使用局部变量.
我想在一个数据结构中存储多个配置条目(可以灵活扩展),如下所示:
(def config [{:host "test", :port 1},{:host "testtest", :port 2}])
Run Code Online (Sandbox Code Playgroud)
稍后我想迭代并处理该数组中的每个散列。
有人可以指出如何在 Clojure 中做到这一点吗?
我遇到了这个问题......我有两个非常相似的宏
(import java.lang.management.ManagementFactory)
(defmacro with-thread-manager [tm & body]
{:pre [(and (vector? tm) (= 1 (count tm)))]}
`(let [~(first tm) (ManagementFactory/getThreadMXBean)]
~@body))
(defmacro with-os-manager [tm & body]
{:pre [(and (vector? tm) (= 1 (count tm)))]}
`(let [~(first tm) (ManagementFactory/getOperatingSystemMXBean)]
~@body))
Run Code Online (Sandbox Code Playgroud)
它们的用法如下:
(defn thread-count []
(with-thread-manager [tm] (.getThreadCount tm)))
(thread-count)
;; => 12
(defn application-cpu-time []
(with-os-manager [osm] (.getProcessCpuTime osm)))
(application-cpu-time)
;; => 71260000000
Run Code Online (Sandbox Code Playgroud)
我希望with-*-manager
将这两个宏推广到另一个宏,以便我可以像这样简化它们:
(defmanagementblock with-thread-manager (ManagementFactory/getThreadMXBean))
(defmanagementblock with-os-manager (ManagementFactory/getOperatingSystemMXBean))
Run Code Online (Sandbox Code Playgroud)
所以我知道的最简单的方法是稍微改变一下宏
(defmacro with-thread-manager [tm & body]
{:pre [(and (vector? …
Run Code Online (Sandbox Code Playgroud) 我正在尝试本教程中给出的以下示例.
我无法理解的是案件是如何保护案件'c'
而_
根本不使用的on
?
我修改了这里给出的代码,但是当我运行它时,我得到错误"非详尽的模式以防万一":
*StateGame> main "accaaaa"
*** Exception: state1.hs:(27,5)-(31,36): Non-exhaustive patterns in case
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
我有两个表,项目和类别,下面的示例数据:
Items:
Title category_id
Item A 1
Item B 2
Item C 3
Item D 2
Item E 3
Item F 2
Categories
category_id category
1 wood
2 plastic
3 metal
Run Code Online (Sandbox Code Playgroud)
我需要做的是计算项目总数,然后列出每个类别中的数量以及总数的百分比
我知道我可以计算每个项目和总数,例如
select
count(*) as total,
sum(category_id=1) as cat_1,
sum(category_id=2
.... etc etc
Run Code Online (Sandbox Code Playgroud)
但有没有办法在不计算每一个的情况下完成所有操作(可能会添加新类别并希望保持工作)然后加入类别表以生成名称?
理想情况下,这是我想要返回的内容:
Category how many % of total
wood 1 17%
plastic 3 50%
metal 2 33%
Total 6 100%
Run Code Online (Sandbox Code Playgroud)
(17%是1/6 => 16.666666667%舍入).
我正试图用clojure包围递归.我使用以下代码得到堆栈溢出错误,有人能发现问题吗?
(我知道这是低效的,但它严格用于学习目的)
user=> (defn addall
([] 0)
([& x]
(if (empty? x) 0)
(+ (first x) (addall (rest x)))))
user/addall
user=> (addall 1)
StackOverflowError clojure.lang.ArraySeq.next (ArraySeq.java:78)
Run Code Online (Sandbox Code Playgroud)