我正在尝试在Mac OSX上安装ghcjs-dom软件包.由于存在很多依赖关系,因此它很颠簸.Webkitgtk3是我目前的克星
cabal install ghcjs-dom
Resolving dependencies...
Configuring webkitgtk3-0.14.1.1...
Failed to install webkitgtk3-0.14.1.1
Build log ( /Users/markkaravan/.cabal/logs/webkitgtk3-0.14.1.1.log ):
[1 of 2] Compiling SetupWrapper ( /var/folders/br/4zwhphlx3816v87cc0bb5sxh0000gn/T/cabal-tmp-24401/webkitgtk3-0.14.1.1/SetupWrapper.hs, /var/folders/br/4zwhphlx3816v87cc0bb5sxh0000gn/T/cabal-tmp-24401/webkitgtk3-0.14.1.1/dist/setup/SetupWrapper.o )
[2 of 2] Compiling Main ( /var/folders/br/4zwhphlx3816v87cc0bb5sxh0000gn/T/cabal-tmp-24401/webkitgtk3-0.14.1.1/dist/setup/setup.hs, /var/folders/br/4zwhphlx3816v87cc0bb5sxh0000gn/T/cabal-tmp-24401/webkitgtk3-0.14.1.1/dist/setup/Main.o )
Linking /var/folders/br/4zwhphlx3816v87cc0bb5sxh0000gn/T/cabal-tmp-24401/webkitgtk3-0.14.1.1/dist/setup/setup ...
[1 of 2] Compiling Gtk2HsSetup ( Gtk2HsSetup.hs, dist/setup-wrapper/Gtk2HsSetup.o )
[2 of 2] Compiling Main ( SetupMain.hs, dist/setup-wrapper/Main.o )
Linking dist/setup-wrapper/setup ...
Configuring webkitgtk3-0.14.1.1...
setup: The pkg-config package 'webkitgtk-3.0' version >=1.8 is required but it
could not be found.
cabal: Error: some …Run Code Online (Sandbox Code Playgroud) 我有以下工作职能:
unMaybe : (t : Type) -> {auto p : t = Maybe x} -> Type
unMaybe {x} _ = x
Run Code Online (Sandbox Code Playgroud)
这个功能很好用:
> unMaybe (Maybe Int)
Int
Run Code Online (Sandbox Code Playgroud)
我还有另一个类似的功能:
unMaybesA : (ts : Vect n Type) -> {xs : Vect n Type} -> {auto p : map Maybe xs = ts} -> Vect n Type
unMaybesA {xs} _ = xs
Run Code Online (Sandbox Code Playgroud)
不幸的是,以下失败:
> unMaybesA [Maybe Int, Maybe String]
(input):1:1-35:When checking argument p to function Main.unMaybesA:
Can't find a value of type
Data.Vect.Vect …Run Code Online (Sandbox Code Playgroud) const a = {x: "Hi", y: "Test"}
const b = ???
// b = {x: "Bye", y: "Test"}
// a = {x: "Hi", y: "Test"}
Run Code Online (Sandbox Code Playgroud)
如何在不变异的情况下将x设置为"Bye"?
我正在尝试了解如何使用GHCJS-DOM创建GUI.我一直在看hello world示例https://github.com/ghcjs/ghcjs-dom-hello,这是微不足道的.添加新节点非常简单.我不能做的,并且无法从库文档(仅签名)中解决的是添加一些事件.例如,在鼠标单击时向主体添加新节点.
我希望避免使用像JQuery这样的JS库,因为我想通过GUI在GHC(webkit)和GHCJS之间移植.
最后,我希望能够将一个鼠标事件表达为FRP事件,但我会一次解决一个步骤.
如果有人有任何指导我会非常感激.我已经使用了haskell几年了,但这是我第一次进入DOM.
我怎样才能让伊德里斯自动证明两个值不相等?
p : Not (Int = String)
p = \Refl impossible
Run Code Online (Sandbox Code Playgroud)
如何让Idris自动生成此证明?auto似乎不能证明涉及的陈述Not.我的最终目标是让Idris自动证明矢量中的所有元素都是唯一的,并且两个矢量是不相交的.
namespace IsSet
data IsSet : List t -> Type where
Nil : IsSet []
(::) : All (\a => Not (a = x)) xs -> IsSet xs -> IsSet (x :: xs)
namespace Disjoint
data Disjoint : List t -> List t -> Type where
Nil : Disjoint [] ys
(::) : All (\a => Not (a = x)) ys -> Disjoint xs ys …Run Code Online (Sandbox Code Playgroud) Idris是MaybeT从Haskell那里买到的还是我应该使用别的东西?我正在尝试使用许多type值进行计算IO (Maybe a)。如何结合Maybe和IO成(如一个单子MaybeT IO在伊德里斯在Haskell)?
我怎样才能约束到Eq a?它需要是善良的 - >>约束
我尝试了什么:
class (a ~ Maybe b, Eq b) => K a where
instance (a ~ Maybe b, Eq b) => K a where
Run Code Online (Sandbox Code Playgroud)
错误:
Not in scope: type variable ‘b’
Run Code Online (Sandbox Code Playgroud)
用法示例:
data Test c = forall a. (c a) => Test a
r :: Test K -> Maybe Bool
r (Test o) = (==) <$> o <*> o -- I need GHC to infer that o is Maybe Eq
Run Code Online (Sandbox Code Playgroud)
有效的案例:
pp :: Test ((~) String) -> …Run Code Online (Sandbox Code Playgroud) 为什么zipWith (-) [6,5,4] [1,2,3]伊德里斯失败了?如果不编写专门的zipWith函数,是否可以避免该错误?
main8.idr:
module Main
import Data.HVect
import Data.Vect
import Data.Vect.Quantifiers
t : Vect 3 Nat
t = zipWith (-) [6,5,4] [1,2,3]
Run Code Online (Sandbox Code Playgroud)
错误:
*main8> :load main8.idr
Type checking ./main8.idr
main8.idr:8:3:When checking right hand side of t with expected type
Vect 3 Nat
When checking argument f to function Data.Vect.zipWith:
Can't disambiguate since no name has a suitable type:
Prelude.Interfaces.-, Prelude.Nat.-
Holes: Main.t
Run Code Online (Sandbox Code Playgroud)
这个文件有效:
module Main
import Data.HVect
import Data.Vect
import Data.Vect.Quantifiers
vm : (ms : Vect …Run Code Online (Sandbox Code Playgroud) 在haskell我使用镜头库.榆树有类似的东西吗?如果我有这个elm数据结构,我怎么能添加3 test.a.b.
test = {
a = {
b = 5
}
}
Run Code Online (Sandbox Code Playgroud)
在哈斯克尔,我会写:test & a.b ~% (+3).在haskell,我可以编写makeLenses ''RecordName并自动生成镜头,榆树有吗?
我在哪里可以找到lodash/fp的打字稿类型?使用lodash定义形成npm,导入lodash/fp时出错.