我正在尝试实现一个将列表分成两个列表的Prolog程序.第一个将包含偶数位置的数字,第二个包含数字是奇数位置.
例如:even_odd([1,2,4,7,5],Even,Odd).将导致Even=[2,7].和Odd=[1,4,5].
我找到了比谷歌搜索问题更优雅的解决方案,但是我想在我的代码中找到问题所在(可能是操作员滥用)因为我真的认为我对Prolog操作符的理解非常差(特别是在算术比较中) .谷歌搜索只会使情况变得更糟,每个网站都有完全不同的解释.
我的代码:
even_odd([], [], []).
even_odd([H|T], Even, Odd) :-
length([H|T], X),
X mod 2 is 0,
append(Even1, H, Even),
even_odd(T, Even1, Odd).
even_odd([H|T], Even, Odd) :-
length([H|T], X),
X mod 2 is 1,
append(Odd1, H, Odd),
even_odd(T,Even,Odd1).
Run Code Online (Sandbox Code Playgroud)
我试过跟踪,我知道问题在于X mod 2 is 1或者0,它们都不是真的.如果我有一个三个元素的列表并且改变X is 3它的条件是完全没问题的,但是这个部门似乎搞得一团糟,所以任何想法?
我正在编写一个简单的 Shell 脚本,以便在 Linux 机器上运行,我将:
1) 在主目录中查找特定的子目录。这些子目录具有非常具体的命名约定(见下文),并且它们始终位于主目录下方最大深度 2 处。
2) 将这些子目录重命名为其原始名称的一部分。
例如,子目录命名为:
andrew-11111
andrew-11112
andrew-11113
andrew-11114
Run Code Online (Sandbox Code Playgroud)
到达这些子目录的路径如下所示:
myphotos/sailing/photos/andrew-1111
myphotos/sailing/photos/andrew-1112
myphotos/biking/photos/andrew-1113
myphotos/hiking/photos/andrew-1114
Run Code Online (Sandbox Code Playgroud)
我想从每个子目录中取出“andrew-”:
myphotos/sailing/photos/1111
myphotos/sailing/photos/1112
myphotos/biking/photos/1113
myphotos/hiking/photos/1114
Run Code Online (Sandbox Code Playgroud)
我已经“找到”了子目录并列出了它们。我还了解如何在命令行中复制和重命名。但以我的 shell 脚本知识水平将其组合起来花费的时间远远超出了我的承受能力。只是免责声明,我非常愿意学习,并且已经编写了一些 shell 脚本,但对此仍然陌生。非常感谢任何帮助或示例!
我使用 Forth(即Swapforth)通过 I2C配置某些硬件。我有一句话:
i2c1-send ( reg-address byte -- )
Run Code Online (Sandbox Code Playgroud)
将一个字节写入某个芯片的特定内部寄存器。初始化序列很长,因此由于内存消耗,如下实现它是不可行的。
: i2c1-init
$1201 $10 i2c1-send
$2130 $43 i2c1-send
[...]
$0231 $43 i2c1-send
;
Run Code Online (Sandbox Code Playgroud)
我创建了一个实现,该实现创建了一个结构,该结构包含第一个单元格中的序列长度和下一个单元格中的三个字节。(请注意,i2c1-send 只是一个占位符,允许您在没有我的硬件的情况下对其进行测试)。
: i2c1-send ( reg_addr byte -- )
\ It is just a placeholder to show what will be written in HW
swap
." addr=" hex . ." val=" . decimal CR
;
: i2c1: ( "<spaces>name" -- )
create here $326e9 0 ,
does> dup cell+ swap
@ 0 do
dup …Run Code Online (Sandbox Code Playgroud) 我有一个领域 -
:Revenue
Run Code Online (Sandbox Code Playgroud)
并且它应该接受像10,000.00这样的值,但如果我输入这样的值,它将存储10到数据库而不是10000.00
在我保存之前,我该怎么办才能删除逗号?
我试图在网上找到一些解决方案但由于我发现它们不完整而无法实现它们.如果有人可以帮助我,我会非常感激.
**我现在面临的问题是,只要我输入值rails就可以将字符串转换为浮点值,然后才能运行gsub函数,就像我在调用gsub之前输入50,000.00将其转换为float 50.0一样,有没有在rails调用字符串的to_f方法上的方法.
我正在学习德尔福,由于某些原因,他们使用这种旧语言,但无论如何.我需要构建一个转换Celsius和Fahrenheit的Weather应用程序.
用户必须输入7天天气但这个例子我只想弄清第1天
所以我首先创建单选按钮来选择Celsius和Fahrenheit,然后如果他们选择Celsius我必须将Celsius转换为Fahrenheit并且如果他们选择Fahrenheit我必须将其转换为Celsius.
所以这是我的代码:
var
Celsius, Fahrenheit, Day1 : Double;
begin
Day1 := fedDay1;
Celsius := (Day1 - 32)*5/9;
Fahrenheit := Day1 * 9/5 + 32;
if radCelsius.checked then
lblConvertDay1.Caption := FloatToStrF(Fahrenheit, ffFixed, 15, 2);
else
lblConvertDay1.Caption := FloatToStr(Celsius, ffFixed, 15, 2);
end;
Run Code Online (Sandbox Code Playgroud)
它在fedDay1上给出了一个错误.这是一个浮动旋转编辑
请帮忙
我正在 Prolog 中进行一个项目,我偶然发现了一个问题:
假设我正在处理一个列表[H|T]。
function1(H,T),
check(H,T,Result),
Result= 'Yes' ->
Stuff
;
function2(H,T,NT),
Stuff2...
)
;
Stuff3.
Run Code Online (Sandbox Code Playgroud)
我的问题是,条件子句中的H和T变量似乎不可见(它们被视为新变量)。我的问题是:如何让它们可见?
(defun sum(n)
(cond
((= n 0) 0)
((= n 1) 1)
(T (+ n sum (- n 1)))))
Run Code Online (Sandbox Code Playgroud)
如果我调用(sum 4)它应该显示10但它给我一个错误:变量SUM没有值
有人可以教我如何生成一个n位数的随机字符串.
例如:n = 3,myString ="001"或"002"或......"999"(开头的数字0除外)
p/s:我使用的是Ruby 1.8.7
我正在尝试将用户输入矩阵加载到clisp中的数组:
(defvar *rows* (read))
(defvar *columns* (read))
(defvar *matrix* (read-line))
(setq m1 (make-array (list *rows* *columns*) :initial-contents *matrix*))
Run Code Online (Sandbox Code Playgroud)
输入示例:
2
3
((1 2 3) (4 5 6))
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
*** - MAKE-ARRAY: "((1 2 3) (4 5 6))" is of incorrect length
Run Code Online (Sandbox Code Playgroud)
但是,如果我在代码中手动输入:
(setq m1 (make-array '(2 3) :initial-contents '((1 2 3) (4 5 6))))
Run Code Online (Sandbox Code Playgroud)
它运作正常,我错过了什么?
我是 python 新手,正在尝试处理大数据代码,但无法理解表达式re.compile(r"[\w']+") 的含义。有人对此有任何想法吗?
这是我使用的代码。
from mrjob.job import MRJob
import re
WORD_REGEXP = re.compile(r"[\w']+")
class MRWordFrequencyCount(MRJob):
def mapper(self, _, line):
words = WORD_REGEXP.findall(line)
for word in words:
yield word.lower(), 1
def reducer(self, key, values):
yield key, sum(values)
if __name__ == '__main__':
MRWordFrequencyCount.run()
Run Code Online (Sandbox Code Playgroud)