我有以下斐波那契函数,它返回预期的输出
q)fib:{{x,sum -2#x}/[{last[x] < 100};x]}
q)fib 1 1
1 1 2 3 5 8 13 21 34 55 89 144
{last[x] < 100}
我们如何用外部函数的参数替换内部函数中的值 100 ?
预期函数调用结构 -
q)fib[1 1;100]
1 1 2 3 5 8 13 21 34 55 89 144 /- expected output
我有以下斐波那契函数,它返回预期的输出
q)fib:{{x,sum -2#x}/[{last[x] < 100};x]}
q)fib 1 1
1 1 2 3 5 8 13 21 34 55 89 144
{last[x] < 100}
我们如何用外部函数的参数替换内部函数中的值 100 ?
预期函数调用结构 -
q)fib[1 1;100]
1 1 2 3 5 8 13 21 34 55 89 144 /- expected output
我遇到过以下使用 -1 命令的函数
q)whereami:{-1 "cd ~ ",system "cd";} / defining the function
q)whereami[] / executing the function
cd ~ /Users/utsav/kdbScripts/db
你能解释一下这个函数中-1命令的用途吗?
似乎它用于以非字符串格式在控制台中提供输出,但不确定是否是这种情况。
如果我尝试不带 -1 和分号的函数,然后在控制台中显示输出,它将以字符串格式显示输出。
whereami:{"cd ~ ",system "cd"}
whereami[]
"cd ~ /Users/utsav/kdbScripts/db"
我在 kdb 中有一个分区表,它按数据分区并按刻度列分区。
表按列划分的属性元数据tick
存储在 kdb 中的哪里?
例子 -
t:([] tick:10?`amzn`fb`goog; px:10?10.; vol:10?1000) / Create a table in memory
.Q.dpft[`:db;2023.10.01;`tick;`t] / Partitioned on date and parted on tick
现在在 q 会话中加载数据库
\l db
meta t
c | t f a
----| -----
date| d
tick| s p
px | f
vol | j
如果我查看表的 .d 文件,它仅包含列顺序。
get `:2023.10.01/t/.d
`tick`px`vol