我使用格式 WY 作为周数和年份。
例如,2018 年的最后一周将表示为'52-2018'.
但我无法让 Carbon 或 DateTime 将其转换回来。
>>> Carbon::createFromFormat('W-Y', '01-2018')
InvalidArgumentException with message 'The format separator does not match
The separation symbol could not be found
Trailing data'
Run Code Online (Sandbox Code Playgroud) 我正在使用一个.edn文件作为数据库种子,需要一种方法来在该文件中设置时间戳并将其写入数据库而不会出现 java 错误。(事实证明,您不能只输入时间戳作为字符串并让它自动转换,因为我们中的一些人可能习惯于使用比 Java 更动态的语言)。
.edn如果我删除#inst并且只将 nil 代替,我已经得到了以下文件,这些文件可以正确播种。
[{:table :subscriptions
:data [{:user_id 1
:price 9900
:transacted_at nil
:begin_at nil
:end_at #inst "2020-01-01T22:00:01-07:00"}]}]
Run Code Online (Sandbox Code Playgroud)
但是#inst包含在上面给出了这个错误:
[{:table :subscriptions
:data [{:user_id 1
:price 9900
:transacted_at nil
:begin_at nil
:end_at #inst "2020-01-01T22:00:01-07:00"}]}]
Run Code Online (Sandbox Code Playgroud)
这里的问题是如何修复该特定错误并将时间戳记输入数据库。
I'm studying Common Lisp. Don't know Scheme yet.
I have no problem with following compose in Common Lisp
(defun compose (&rest fns)
(destructuring-bind (fn1 . rest) (reverse fns)
#'(lambda (&rest args)
(reduce #'(lambda (v f) (funcall f v))
rest
:initial-value (apply fn1 args)))))
Run Code Online (Sandbox Code Playgroud)
(it's interesting the deep similarity between compose & reduce :) )
Then, reading around, I found an example of compose in Scheme, but done recursively, like so:
(define (compose . fs)
(if (null? fs) (lambda (x) x) …Run Code Online (Sandbox Code Playgroud) 在下面的实验中,我缩写为REPL返回错误,并加上了[num],以便在讨论中可以参考。
我对为什么调用存储在变量中的函数的尝试失败感到困惑。在我看来,语法比需要的复杂。
为什么我既不发行(f 3)也不发行(#'f 3)?是否不允许将尖引号作为表格的第一要素?为什么funcall在这里需要?
[235]> (setf f #'abs) ; I'm ok with this
#<SYSTEM-FUNCTION ABS>
[236]> (abs 3) ; This is fine
3
[237]> (f 3) ; Err due to sep. fn namespace. OK.
-- Err[1]: "Undefined function f" --
[238]> (#'f 3) ; Don't get what this err is telling me...
-- Err[2]: "#'F is not a function name, try using a symbol instead"
[239]> (funcall #'f 3) ; seems very long …Run Code Online (Sandbox Code Playgroud) 我在以下代码中出现堆栈溢出,然后在SBCL中尝试了一下并成功了。想知道是什么造成了那里的差异。
特别是:虽然我确实计划在某个时候移至SBCL,但可以在CLISP中使用它吗?
(defvar *objs* nil) ; [1]
(defun parents (obj) (gethash :parents obj))
(defun obj (&rest parents) ; [2]
(let ((obj (make-hash-table)))
(push obj *objs*)
(setf (parents obj) parents)
obj))
(defun (setf parents) (val obj) ; [3]
(prog1 (setf (gethash :parents obj) val)
(make-precedence obj)))
(defun make-precedence (obj) ; [4]
(setf (gethash :preclist obj) (precedence obj))
(dolist (x *objs*)
(if (member obj (gethash :preclist x))
(setf (gethash :preclist x) (precedence x)))))
(defun precedence (obj) ; [5]
(delete-duplicates (traverse obj)))
(defun …Run Code Online (Sandbox Code Playgroud) 我有一个如下视图,其中合并了多个表,并且我认为为结果集中的每一行拥有唯一的行号可能是一个好主意。有先见之明的原因是我有一个管理工具,它不知道我正在使用视图而不是普通表,并且它期望存在唯一的 id,但我现在推测它可能值得更普遍地做(即,在某些理论术语中这样做可能是有意义的 - 欢迎对此进行讨论)。想知道如何在 postgresql 中做到这一点。
CREATE VIEW subscriptions AS (
SELECT subscriber_id, course, end_at
FROM subscriptions_individual_stripe
UNION ALL SELECT subscriber_id, course, end_at
FROM subscriptions_individual_bank_transfer
ORDER BY end_at DESC);
Run Code Online (Sandbox Code Playgroud)
这些是单独的表的原因当然是它们实际上是不同的实体,但我还需要能够以组合的方式考虑它们,因此是视图。这是我在某些流行的 Web 框架中避免所谓的“多态关系”的方法。
我有一个需要 id 的工具,虽然我的第一个想法是视图不需要唯一的密钥,但另一方面,也许它们需要......?原因是两个记录可能存在于一个 UNIONed 表中,这些记录仅凭借主键而唯一。如果不包含主键,则联合应删除其中一个,因此记录将丢失。我们是否还应该考虑到这一点,即为每个 UNIONed 表选择主键(此处为整数 id),但是将其“转换”为其他唯一 id,以便视图拥有自己的唯一整数主键?当然,这在引用原始 UNIONed 表中的任何内容方面都无法使用,但我对此表示同意(该视图是我分析的终点,我不打算对其做任何进一步的事情,并且当然它是不可写的)。
更新
我接受 S-Man 下面的回答,因为它是我提出的问题的解决方案,但是,正如所指出的,row_number()不能将其视为真正的标识符,因为它不会。
因此,重要的是,我想知道row_number()那时的真正目的是什么。也许它(主要?偶尔?)有用,当您计划将数据导出到其他地方(即看起来几乎是电子表格)时,您想要输出一些查询,并且您放弃了将其与数据库的其余部分集成的任何感觉?
正如 Abelisto 在评论中指出的那样,表继承可能会更好。
我们知道 Clojure 是 Lisp-1,即没有单独的函数和变量命名空间。
我是从 Common Lisp(这是一个 Lisp-2)的角度来看这个的。
我正在寻求了解元数据,但对以下内容感到困惑:
user=> (def ^Integer my 3)
#'user/my
user=> (meta my)
nil
user=> (meta #'my)
{:tag java.lang.Integer, :line 1, :column 1, :file "NO_SOURCE_FILE", :name my, :ns #object[clojure.lang.Namespace 0x1d5a857d "user"]}
user=> (def myatom (atom (for [x [1 2 3]] ^{:key 'foo} x)))
#'user/myatom
user=> @myatom
(1 2 3)
user=> (first @myatom)
1
user=> (meta (first @myatom))
nil
user=> (meta #'(first @myatom))
RuntimeException EOF while reading, starting at line 1 clojure.lang.Util.runtimeException (Util.java:221)
RuntimeException Unmatched delimiter: …Run Code Online (Sandbox Code Playgroud) common-lisp ×3
clojure ×2
php ×2
clisp ×1
edn ×1
laravel ×1
laravel-5 ×1
php-carbon ×1
postgresql ×1