我想设置bazel构建系统,以使用新的rules_js规则集构建包含多个 JavaScript 包的 monorepo 。rules_js的文档说它通过“工作空间”支持“monorepo 中的嵌套 npm 包”,但我不明白如何将所有内容连接起来,以便:
我尝试@npm//$DEPENDENCY在depsof 规则中使用类似js_library引用我的 npm 依赖项(如旧的rules_nodejs规则集),但我只是收到有关不存在目标的错误。
以下是根据Petr Pudlak对我之前的问题的解决方案,在MonadState上对镜片(Edward Kmett)的一系列示例/练习.
除了展示镜片的一些用途和功能之外,这些例子还说明了理解GHCi生成的类型签名是多么困难.有希望将来事情会有所改善吗?
{-# LANGUAGE TemplateHaskell, RankNTypes #-}
import Control.Lens
import Control.Monad.State
---------- Example by Petr Pudlak ----------
-- | An example of a universal function that modifies any lens.
-- It reads a string and appends it to the existing value.
modif :: Lens' a String -> StateT a IO ()
modif l = do
s <- lift getLine
l %= (++ s)
-----------------------------------------------
Run Code Online (Sandbox Code Playgroud)
以下注释类型签名是GHCi生成的签名类型签名.另一个是彼得的改编.就个人而言,我很难理解GHCi产生的那些,我想知道:为什么GHCi不会产生那些简化的?
-------------------------------------------
-- modif2
-- :: (Profunctor p, MonadTrans t, MonadState s (t IO)) …Run Code Online (Sandbox Code Playgroud) 我正在尝试将列表"profile1"中的数据转换为名为"DataSubject"的自定义类型.
我将此传递给函数'makeDS'以尝试此转换 - 但是以下操作不起作用:
type Name = String
type Age = Int
type Iq = Int
type Language = String
data DataSubject = DS {name :: Name, age :: Age, iq :: Iq, language :: Language} deriving (Show)
data Contain = Name String | Age Int | Iq Int | Language String deriving (Show) --Use so list can take multiple types
profile1 = [Name "Bob", Age 22, Iq 100, Language "French"]
makeDS :: [Contain] -> DataSubject
makeDS t = DS …Run Code Online (Sandbox Code Playgroud)