是否可以使用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标准,甚至是非标准的(浏览器特定的)是否有类似的东西?
我正在查看Applicative
Haskell库中的类并偶然发现Alternative
.
这门课有什么用?谷歌搜索没有透露任何特别有见地的信息.它似乎完全不合适,与Applicative包捆绑在一起.
有人可以发布你可以使用这个课程的可能场景吗?
我刚刚在一段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记录语法对一堆函数和常规代数数据类型的去除这一事实.是这样的吗?
我经常遇到这种情况,因为它很烦人.
假设我有一个总和类型,它可以包含一个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中编写一个应用程序,它必须在Git存储库上执行基本操作(添加,记录,推送,拉取,获取,差异等)
这里有什么选择(除了从Haskell调用shell命令之外还有什么)?我在Hackage上找不到任何好的线索.
我使用符号的两种语言是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扩展).
那么为什么没有将符号添加到语言中呢?或者我是否以错误的方式思考这个问题?
如何为所有本地安装的cabal包生成和安装文档?我在〜/ .cabal/config中打开了文档标志,这意味着所有新安装的软件包都会生成文档.但是如何为所有已安装的软件包生成文档?
有没有办法自动cabal install --reinstall
安装所有已安装的软件包?更重要的是,这是一个好主意吗?
假设我有一个复合数据类型 -
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创建PHP扩展?
通常PHP扩展是使用C编写的.使用Haskell FFI来提供存根C扩展的功能(甚至是个好主意)?
这种方法的注意事项是什么?Zend是否会在后台执行一些会破坏这种方案的魔法?
的空隙包声称提供适合居住型称为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数据类型实际上是无人居住的.
会有用吗还是我错过了什么?