我在Haskell的一些代码下面发帖.请将代码作为一个例子,我将使用它来解释我想知道的内容.
try :: [[Char]] -> [[Char]] -> [[Char]] -> [[Char]]
try (a:as) (b:bs) (c:cs) | ((checkIfCorrect a b c) == True) = a:b:[c]
| otherwise = try as bs cs
checkIfCorrect :: [Char] -> [Char] -> [Char] -> Bool
checkIfCorrect a b c = True
Run Code Online (Sandbox Code Playgroud)
最终,只checkIfCorrect返回True一个参数组合.checkIfCorrect功能很长,所以我决定在这里发帖.在上面的示例中,函数checkIfCorrect(通过函数try)应用于:首先[Char]在第一个列表上,第一个[Char]在第二个列表上,第[Char]一个在第三个列表中.如果未满足第一个保护方程,则将函数checkIfCorrect应用于:第[Char]一个列表中的第二个......依此类推.我想达到的目的是将函数checkIfCorrect(通过函数try)应用于[Char]所有列表([[Char]])的所有s 组合.我的意思是以下(例如):第[Char]一个列表上的第三[Char]个,第二个列表上的第八 个, …
我想知道将如何执行以下查询中的比较:
StringBuilder queryStr = new StringBuilder();
queryStr.append("SELECT o FROM PRDBook as o WHERE ")
.append("o.publicationDate < :now");
Query query = entityManager.createQuery(queryStr.toString());
Date now = new Date();
query.setParameter("now", now);
Run Code Online (Sandbox Code Playgroud)
在数据库中,列的publicationDate类型为timestamp without time zone。此列中的示例值:
2018-03-01 18:00:00
Run Code Online (Sandbox Code Playgroud)
结果now.toString()是:
Wed Aug 22 16:14:03 CEST 2018
Run Code Online (Sandbox Code Playgroud)
是否会以这种方式进行上述数据之间的比较:
2018-03-01 18:00:00 < 2018-08-22 16:14:03
或者那样:
2018-03-01 18:00:00 < 2018-08-22 14:14:03
我在Haskell中编写了以下数据类型及其实例:
data Plaster = Plaster [String] deriving (Read, Show)
examplePlaster :: Plaster
examplePlaster = Plaster ["..AEG", "..CD", "DC...", "A.B.", "..EFG"]
Run Code Online (Sandbox Code Playgroud)
我想创建一个函数,该函数用于examplePlaster返回列表中的第一个String.我该怎么办?