小编Rey*_*och的帖子

将css过渡设置为每秒像素数

那么,是否可以将CSS转换设置为使用速度而不是持续时间?

现在,如果我想要一个将元素从另一个元素的左侧移动到另一个元素的类,速度会发生很大变化.

如果我有短元素并且我想从左到右移动子元素并且持续时间设置为例如1秒,则它移动得非常慢.

另一方面,如果我有一个具有相同类的非常长的元素,则子元素以令人难以置信的速度闪烁以满足1秒的时间限制.

这真的伤害了我的css模块性,所以我想知道在这种情况下是否有办法使转换保持一致.

html css transition

11
推荐指数
1
解决办法
1743
查看次数

在Haskell中,是否可以为部分应用的多参数类型类提供默认实现?

例如,我有一个类型类:

class MyClass a b c where
    fun01 :: a -> b
    fun02 :: a -> c

    fun03 :: a -> b -> c -> ()
    fun04 :: a -> WhatEver
Run Code Online (Sandbox Code Playgroud)

我想为我提供一个默认实现,让我们调用它BaseDataType来定义fun03自我和fun01和的实现fun02.然后我会有这样的事情:

class MyClass BaseDataType b c where
    fun03 = fun01 <$> fun02 ...
    fun04 = fun02 ...
Run Code Online (Sandbox Code Playgroud)

而不是完成我的类实例并避免所有的样板代码fun03,fun04我只是提供fun01fun02喜欢这样:

instance MyClass BaseDataType Int Char where
    fun01 = 1
    fun02 = 'C'
Run Code Online (Sandbox Code Playgroud)

是否可能有一些语言扩展允许这种行为?我在这个主题上找不到任何东西.

haskell default multiparameter typeclass

10
推荐指数
2
解决办法
439
查看次数

我对monoid的理解是否有效?

所以,我现在正在学习Haskell,我想确认或揭穿我对monoid的理解.

我从阅读CIS194课程中发现的是,monoid基本上是用于在自定义集上定义自定义二进制操作的"API".

比我去告诉自己更多,我偶然发现了大量非常令人困惑的教程,试图澄清这个问题,所以我不再那么肯定了.

我有不错的数学背景,但我对所有的比喻感到困惑,我正在寻找对我对monoid的理解的明确是/否答案.

haskell binary-operators operators monoids

8
推荐指数
2
解决办法
238
查看次数

用户在Scotty注册

在学习Haskell的同时,我在Scotty框架中创建了一个小型Web应用程序.接下来我想添加用户注册.

注册应支持电子邮件/密码和Google/FaceBook登录选项.如果用户在"现场"注册,他也应该能够使用G/FB帐户登录,反之亦然.

是否有一些标准/简单的方法来实现Scotty

我真的不喜欢自己进行注册和身份验证,但我想只是关于如何实现标准电子邮件/密码reg/auth的一些指示会很有帮助.

authentication haskell registration scotty

7
推荐指数
0
解决办法
292
查看次数

Haskell中的newtype行为

我发现我可以做到这一点1 :: Product Int并得到Product {getProduct = 1}结果.

Product是一个newtype定义的Data.Monoid.比我尝试定义自己的newtype那样:

newtype Stuff a = Stuff {getStuff :: a} deriving (Show)
Run Code Online (Sandbox Code Playgroud)

但如果我尝试这样做,1 :: Stuff Int我会收到一个错误:

<interactive>:20:1: error:
* No instance for (Num (Stuff Int)) arising from the literal `1'
* In the expression: 1 :: Stuff Int
  In an equation for `it': it = 1 :: Stuff Int
Run Code Online (Sandbox Code Playgroud)

我是否必须施加Num约束a或什么?为什么这不起作用?

haskell newtype

6
推荐指数
1
解决办法
112
查看次数

Postgresql存储过程返回选择结果集

在Microsoft SQL服务器中,我可以这样做:

create procedure my_procedure @argument1 int, @argument2 int
as
    select *
    from my_table
    where ID > @argument1 and ID < @argument2
Run Code Online (Sandbox Code Playgroud)

这将返回我的所有列的表my_table.

我在postgresql中设法做的最近的事情是:

create or replace function
    get_test()
returns setof record
as
$$ select * from my_table $$
language sql
Run Code Online (Sandbox Code Playgroud)

或者我可以定义我的表类型,但手动重新创建技术上已经存在的是非常不切实际的.

create or replace function
    get_agent_summary()
returns table (
    column1 type, column2 type, ...
)
as
$$
begin
    return query select col1, col2, ... from my_existing_table;
...
Run Code Online (Sandbox Code Playgroud)

维持是痛苦的.

那么,如何在不重新定义我想要返回的表中的每一列的情况下轻松返回结果集?

sql-server postgresql resultset

4
推荐指数
1
解决办法
6134
查看次数

Haskell Servant将自定义数据传递给auth处理程序

我正在使用自定义monad(带阅读器)轻松地将数据库(如DB池)传递给我的处理程序(在使用自定义monad之前,我曾将连接作为fn参数传递).

这就是我定义自定义monad的方法:

newtype Controller a = Controller
    { runController :: ReaderT ServerEnvironment Handler a
    } deriving ( Functor, Applicative, Monad, MonadReader ServerEnvironment, 
                 MonadError ServantErr, MonadIO )
Run Code Online (Sandbox Code Playgroud)

ServerEnvironment只是我用来携带数据的自定义数据类型.

问题是,对于我,AuthHandler我必须具体使用以下功能:

r -> Handler usr
Run Code Online (Sandbox Code Playgroud)

作为身份验证处理程序,我不能使用我的自定义处理程序,它将是:

r -> Controller usr
Run Code Online (Sandbox Code Playgroud)

而且我也无法传递我,ConnectionPool因为签名不能是:

ConnPool -> r -> Handler usr
Run Code Online (Sandbox Code Playgroud)

那么,如何在不使用全局IO状态的情况下将额外数据传递给servant中的身份验证处理程序?

database authentication haskell pool servant

4
推荐指数
1
解决办法
412
查看次数

Haskell 仆人从处理程序获取当前路由/URL

我想获得与我的处理程序相对应的当前路线。这是我的服务器模型,仅供参考:

type ServerAPI = 
         "route01" :> Get '[HTML] Text
    :<|> "route02" :> "subroute" :> Get '[HTML] Text
    :<|> "route03" :> Get '[HTML] Text
Run Code Online (Sandbox Code Playgroud)

这里有一些处理程序:

route1and2Handler :: Handler Text
route1and2Handler = do
    route <- getCurrentRoute
    addVisitCountForRouteToDatabaseOrSomethingOfThatSort...
    return template

route3Handler :: Handler Text
route3Handler = return "Hello, I'm route 03"
Run Code Online (Sandbox Code Playgroud)

还有我的服务器:

server :: Server ServerAPI
server = route1and2Handler :<|> route1and2Handler :<|> route3Handler
Run Code Online (Sandbox Code Playgroud)

所以,基本上我route1and2Handler应该有一些方法来获得当前路线。我已经尝试将请求对象放入我的处理程序并通过实现这样的HasServer实例从中提取 url :

data FullRequest

instance HasServer a => HasServer (FullRequest :> a) where
    type Server …
Run Code Online (Sandbox Code Playgroud)

haskell request servant

4
推荐指数
1
解决办法
1106
查看次数

Haskell将用户输入存储在数组中

我正在学习Haskell,我想让用户在控制台中输入x数字并将这些数字存储在数组中,这些数字可以传递给我的函数.

不幸的是无论我尝试什么它都不起作用,这是我的代码:

-- Int Array
intArray :: Int -> IO [Int]
intArray 0 = []
intArray x = do
    str <- getLine
    nextInt <- intArray (x - 1)
    let int = read str :: Int
    return int:nextInt

-- Main Function
main = do
    array <- intArray 5
    putStrLn (show array)
Run Code Online (Sandbox Code Playgroud)

haskell input

3
推荐指数
1
解决办法
1625
查看次数

Haskell仆人wai中间件无法正常工作

所以,我想在我的服务器服务器上添加两个wai中间件.一个用于提供静态文件的中间件,另一个用于记录.

我有我的api defined(router),这就是我启动服务器的方式:

webServer :: IO ()
webServer = run 80 (middleware $ router)
Run Code Online (Sandbox Code Playgroud)

以下是我如何定义我的middleware:

middleware :: Application -> Application
middleware = do
  logStdoutDev
  staticPolicy $ addBase "static"
Run Code Online (Sandbox Code Playgroud)

现在,如果我把logStdoutDev第一个比我不能提供静态文件,但如果我放staticPolicy第一,我可以提供静态文件,但我失去了记录事件的能力(基本上他们被忽略).

问题是,如何wai在仆人中正确组合中间件.

haskell middleware servant

2
推荐指数
1
解决办法
336
查看次数