小编Anu*_*ain的帖子

如何使用CSS禁用表单字段?

是否可以使用CSS禁用表单字段?我当然知道属性已禁用,但是可以在CSS规则中指定它吗?就像是 -

<input type="text" name="username" value="admin" >
<style type="text/css">
  input[name=username] {
    disabled: true; /* Does not work */
  }
</style>
Run Code Online (Sandbox Code Playgroud)

我问的原因是,我有一个应用程序,其中表单字段是自动生成的,并且字段是基于某些规则(在Javascript中运行)隐藏/显示的.现在我想扩展它以支持禁用/启用字段,但是编写规则的方式是直接操作表单字段的样式属性.所以现在我必须扩展规则引擎来更改属性以及表单字段的样式,并且不知何故它似乎不太理想.

很奇怪你在CSS中有可见和显示属性但没有启用/禁用.在仍然在工作中的HTML5标准,甚至是非标准的(浏览器特定的)是否有类似的东西?

html css

152
推荐指数
9
解决办法
41万
查看次数

Haskell - 什么是Control.Applicative.Alternative有用吗?

我正在查看ApplicativeHaskell库中的类并偶然发现Alternative.

这门课有什么用?谷歌搜索没有透露任何特别有见地的信息.它似乎完全不合适,与Applicative包捆绑在一起.

有人可以发布你可以使用这个课程的可能场景吗?

haskell applicative

29
推荐指数
2
解决办法
3435
查看次数

这个haskell语法是什么?

我刚刚在一段Haskell代码中遇到了以下语法 -

data A = A Int Int | B

m :: A -> Int
m a = case a of
  A{} -> 1
  _ -> 2
Run Code Online (Sandbox Code Playgroud)

这是A{}做什么的?是否{}自动匹配任意数量的参数?

我有一种感觉,这是在利用Haskell记录语法对一堆函数和常规代数数据类型的去除这一事实.是这样的吗?

syntax haskell record

28
推荐指数
1
解决办法
829
查看次数

如何避免编写这种类型的Haskell样板代码

我经常遇到这种情况,因为它很烦人.

假设我有一个总和类型,它可以包含一个x或一堆其他与之无关的事物x-

data Foo x = X x | Y Int | Z String | ...(other constructors not involving x)
Run Code Online (Sandbox Code Playgroud)

要声明一个Functor实例,我必须这样做 -

instance Functor Foo where
    fmap f (X x) = X (f x)
    fmap _ (Y y) = Y y
    fmap _ (Z z) = Z z
    ... And so on
Run Code Online (Sandbox Code Playgroud)

虽然我想做的是 -

instance Functor Foo where
    fmap f (X x) = X (f x)
    fmap _ a = a
Run Code Online (Sandbox Code Playgroud)

即我只关心X构造函数,所有其他构造函数都只是"通过".但是当然这不会编译,因为a左边是 …

haskell boilerplate

28
推荐指数
3
解决办法
1771
查看次数

Haskell库来操纵git repo

我正在Haskell中编写一个应用程序,它必须在Git存储库上执行基本操作(添加,记录,推送,拉取,获取,差异等)

这里有什么选择(除了从Haskell调用shell命令之外还有什么)?我在Hackage上找不到任何好的线索.

git haskell

24
推荐指数
1
解决办法
3039
查看次数

为什么Haskell没有符号(la ruby​​)/ atoms(la erlang)?

我使用符号的两种语言是Ruby和Erlang,我总是发现它们非常有用.

Haskell确实有代数数据类型,但我仍然认为符号会非常方便.我想到的一个直接用途是,由于符号与整数同构,因此您可以在使用积分或字符串"主键"的地方使用它们.

原子的语法糖可能很小 - :某物或<某物>是原子.所有原子都是名为Atom的Type的实例,它派生Show和Eq.然后,您可以将其用于更多描述性错误代码

type ErrorCode = Atom
type Message = String
data Error = Error ErrorCode Message
loginError = Error :redirect "Please login first"
Run Code Online (Sandbox Code Playgroud)

在这种情况下:重定向比使用字符串("重定向")更有效,并且比整数更容易理解(404).

好处可能看似微不足道,但我说值得添加原子作为语言特征(或至少GHC扩展).

那么为什么没有将符号添加到语言中呢?或者我是否以错误的方式思考这个问题?

ruby erlang language-features haskell language-design

16
推荐指数
3
解决办法
2929
查看次数

Haskell Cabal为所有已安装的软件包重新生成文档

如何为所有本地安装的cabal包生成和安装文档?我在〜/ .cabal/config中打开了文档标志,这意味着所有新安装的软件包都会生成文档.但是如何为所有已安装的软件包生成文档?

有没有办法自动cabal install --reinstall安装所有已安装的软件包?更重要的是,这是一个好主意吗?

documentation haskell cabal

14
推荐指数
1
解决办法
2385
查看次数

Haskell中的"真正"泛型函数

假设我有一个复合数据类型 -

data M o = M (String,o)
Run Code Online (Sandbox Code Playgroud)

现在,我可以定义一个适用于ALL的函数,M而不管它是什么o.例如 -

f :: M o -> M o
f (M (s,o)) = M (s++"!", o)
Run Code Online (Sandbox Code Playgroud)

然而,f并不像我希望的那样普遍.特别是,f在表达式中使用修复了类型,o所以我不能再使用f不同类型的o.例如,以下不是类型检查 -

p f = undefined where
  m1 = M ("1", ())
  m2 = M ("2", True)
  m1' = f m1
  m2' = f m2
Run Code Online (Sandbox Code Playgroud)

它产生错误 - Couldn't match expected type 'Bool' with actual type '()'

令人惊讶的是,如果我不提供f作为参数,而只是使用f的全局定义,那么它编译并正常工作!即编译 -

p = undefined where …
Run Code Online (Sandbox Code Playgroud)

haskell existential-type

14
推荐指数
2
解决办法
347
查看次数

是否可以在Haskell中创建PHP扩展?

是否可以使用Haskell创建PHP扩展?

通常PHP扩展是使用C编写的.使用Haskell FFI来提供存根C扩展的功能(甚至是个好主意)?

这种方法的注意事项是什么?Zend是否会在后台执行一些会破坏这种方案的魔法?

php c haskell ffi php-extension

12
推荐指数
1
解决办法
921
查看次数

不必要的类型杂耍定义Data.Void(Hackage上的包"void")?

空隙包声称提供适合居住型称为Void,其定义如下: -

newtype Void = Void Void
Run Code Online (Sandbox Code Playgroud)

这个定义比使用更简单的东西更好吗?说 -

data Void
Run Code Online (Sandbox Code Playgroud)

如果我的理解是正确的,那么两种数据类型都只包含底值.然而,后者更容易理解.

编辑:好的,所以我理解丹尼尔的答案如下.但是我想到了另一种可能更简单的方法来保持Haskell98兼容.我们可以使用Abstract数据类型,并且不向用户公开构造函数.

module Data.Void (Void) where
  data Void = Void
Run Code Online (Sandbox Code Playgroud)

现在只有Data.Void模块中的代码可以构造一个Void,但是因为我们知道它没有,所以Void数据类型实际上是无人居住的.

会有用吗还是我错过了什么?

haskell

12
推荐指数
2
解决办法
618
查看次数