我正在尝试删除重音,所以当我进行SELECT时它会忽略它们.
例:
SELECT * FROM table WHERE
table.id ILIKE 'Jose';
Run Code Online (Sandbox Code Playgroud)
它返回:
José
Jose
Jósé
Jóse
Run Code Online (Sandbox Code Playgroud)
或类似的东西.
我发现这些功能并且它们不起作用,我想可能是因为我使用的是Struts 1.X,请检查它们并告诉我哪里错了或我应该使用哪些其他功能.
第一功能
CREATE OR REPLACE FUNCTION unaccent_string(text) RETURNS text AS $$
DECLARE
input_string text := $1;
BEGIN
input_string := translate(input_string, 'âãäå???ÁÂÃÄÅ???', 'aaaaaaaaaaaaaaa');
input_string := translate(input_string, 'èééêë??????????', 'eeeeeeeeeeeeeee');
input_string := translate(input_string, 'ìíîïì???ÌÍÎÏÌ???', 'iiiiiiiiiiiiiiii');
input_string := translate(input_string, 'óôõö???ÒÓÔÕÖ???', 'ooooooooooooooo');
input_string := translate(input_string, 'ùúûü????ÙÚÛÜ????', 'uuuuuuuuuuuuuuuu');
return input_string;
END;
$$ LANGUAGE plpgql;
Run Code Online (Sandbox Code Playgroud)
第二功能
CREATE OR REPLACE FUNCTION norm_text_latin(character varying)
RETURNS character varying AS …Run Code Online (Sandbox Code Playgroud) 我正在为我正在学习的课程编写一个编译器.该类不是专门的Haskell,而是我使用Haskell编写我的编译器和解释器.我有一个cabal包设置,希望我的教授可以轻松运行/编译.我对构建工具字段中的两个可执行文件感到高兴和alex,但是Cabal忽略了这一点,然后抱怨它无法找到Happy和Alex应该生成的模块.如果我手动运行:
alex LimpScanner.x
happy LimpParser.y
Run Code Online (Sandbox Code Playgroud)
然后cabal完美运行.
我以为我让cabal自动运行它们,但也许我记得不完美.
limp.cabal:
-- limp.cabal auto-generated by cabal init. For additional options,
-- see
-- http://www.haskell.org/cabal/release/cabal-latest/doc/users-guide/authors.html#pkg-descr.
-- The name of the package.
Name: limp
-- The package version. See the Haskell package versioning policy
-- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for
-- standards guiding when and how versions should be incremented.
Version: 0.1
-- A short (one-line) description of the package.
Synopsis: LIMP Compiler (Compiler Construction course project)
-- A longer description of the package.
-- Description:
-- URL …Run Code Online (Sandbox Code Playgroud) 我正在为Alex做贡献,它显然取决于很多库,应该编译很多版本.
我需要使用一个只能从GHC 7.6.1获得的函数来更好地处理错误.所以我想使用an #if ...来导入所述函数,否则,我会以不同的方式处理错误.
我见过一些:
#if __GLASGOW_HASKELL__ >= 610
import Control.Exception ( bracketOnError )
#endif
Run Code Online (Sandbox Code Playgroud)
所以我做了:
#if __GLASGOW_HASKELL__ >= 761
import Text.Read ( readMaybe )
#endif
Run Code Online (Sandbox Code Playgroud)
认为这761是GHC版本的别名7.6.1,当我构建cabal包并尝试它时,即使我使用Glorious Glasgow Haskell编译系统版本7.8.4,该函数也不会被导入.
所以在使用程序试用之后,我发现它7.8.1标识__GLASGOW_HASKELL__为708.
{-# LANGUAGE CPP #-}
module Main where
#if __GLASGOW_HASKELL__ == 708
ver = "==708"
#else
ver = "/=708"
#endif
main = putStrLn $ ver
Run Code Online (Sandbox Code Playgroud)
运行它:
$ runhaskell if.hs
==708
Run Code Online (Sandbox Code Playgroud)
我怎么知道我应该使用什么价值7.6.1 …
我正在尝试在运算符和运算符上为我的自定义数据类型创建一个Semigroup和VerifiedSemigroup实例:Bool&&||
%case data Lógico = Cierto | Falso
(&&) : Lógico -> Lógico -> Lógico
(&&) Cierto Cierto = Cierto
(&&) _ _ = Falso
(||) : Lógico -> Lógico -> Lógico
(||) Falso Falso = Falso
(||) _ _ = Cierto
Run Code Online (Sandbox Code Playgroud)
所以我先制作一个命名实例为Semigroup在 &&运营商:
-- Todos
instance [TodosSemigroup] Semigroup Lógico where
(<+>) a b = a && b
Run Code Online (Sandbox Code Playgroud)
但在制作VerifiedSemigroup实例时,如何告诉Idris使用TodosSemigroup实例Lógico? …
formal-verification named-instance typeclass idris semigroup
我是Haskell和FP的新手,所以这个问题可能看起来很愚蠢.
我的main函数中有一行代码
let y = map readFile directoryContents
Run Code Online (Sandbox Code Playgroud)
其中directoryContents的类型[FilePath].这反过来(我认为)使y类型[IO String],所以一个字符串列表 - 每个字符串包含每个文件的内容directoryContents.
我有一个函数写在另一个模块中工作[String],String但我现在不清楚如何调用/使用它们因为y是类型[IO String].有什么指针吗?
编辑:
有人向我建议我要用mapM而不是map,所以:
let y = mapM readFile directoryContents,y现在是类型IO [String],我该怎么做?
我刚刚做了brew install haskell-platform,它安装了Glorious Glasgow Haskell编译系统,版本7.6.3.
$ cabal --version
cabal-install version 1.16.0.2
using version 1.16.0 of the Cabal library
$ cabal update
Downloading the latest package list from hackage.haskell.org
Note: there is a new version of cabal-install available.
To upgrade, run: cabal install cabal-install
$ cabal install cabal-install
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: cabal-install-1.20.0.3
rejecting: zlib-0.5.4.1, 0.5.4.0, 0.5.3.3, 0.5.3.2, 0.5.3.1, 0.5.2.0, 0.5.0.0,
0.4.0.4, 0.4.0.3, 0.4.0.2, 0.4.0.1, 0.4, 0.3, 0.2 (global constraint requires
installed instance) …Run Code Online (Sandbox Code Playgroud) 我有以下课程:
class SappState s where
getTable :: s -> SymbolTable
getStack :: s -> Stack Scope
getScopeId :: s -> ScopeNum
getAst :: s -> Program
putTable :: SymbolTable -> s -> s
putStack :: Stack Scope -> s -> s
putScopeId :: ScopeNum -> s -> s
putAst :: Program -> s -> s
Run Code Online (Sandbox Code Playgroud)
我总是show在datas表示这个实例class在它定义的函数.所以我用以下代码概括了它:
instance (SappState s) => Show s where
show st = showT ++ showS ++ showI ++ …Run Code Online (Sandbox Code Playgroud) 我为foldl编写了一个实现,并想检查它是否有效,我尝试了一些案例,它似乎运行良好,但我想确定.
我读了一下quickCheck并试了一下,但我似乎无法使它工作,这就是代码
foldl'' :: (b -> a -> b) -> b -> [a] -> b
test :: Eq b => (b -> a -> b) -> b -> [a] -> Bool
test f e ls = foldl'' f e ls == foldl f e ls
Run Code Online (Sandbox Code Playgroud)
当我运行quickCheck test它时会抛出以下错误:
No instance for (Show (b0 -> a0 -> b0))
arising from a use of `quickCheck'
Possible fix:
add an instance declaration for (Show (b0 -> a0 -> b0))
In the expression: …Run Code Online (Sandbox Code Playgroud) 我在Haskell中有一个Type来使Map有一个与键相关联的值.
如果我编译以下代码:
type Mapa k v = Map k [v]
instance Monoid (Mapa k v) where
--mempty :: Mapa k v
mempty = DM.empty
--mappend :: Mapa k v -> Mapa k v -> Mapa k v
mappend a b = DM.unionWith (++) a b
Run Code Online (Sandbox Code Playgroud)
GHCi将抛出:
Illegal instance declaration for `Monoid (Map k [v])'
(All instance types must be of the form (T a1 ... an)
where a1 ... an are *distinct type variables*,
and each type variable appears at …Run Code Online (Sandbox Code Playgroud) 我想知道是否有办法在Parsec停止解析后从Parsec获得剩余输入,无论是成功还是失败的解析,也许这个签名:
parseRemaining :: Stream s Identity t => Parsec s () a -> SourceName -> s -> (s, Either ParseError a)
Run Code Online (Sandbox Code Playgroud)
我们得到的不是一个Either ParseError a,我们另外得到剩下的Stream s