小编zer*_*ing的帖子

为什么它必须是monad?

我试过在前奏中使用以下代码片段:

*ExerciseMonad Control.Monad> :t fmap ((:) 3) []
Run Code Online (Sandbox Code Playgroud)

并得到一个空的结果[].

然后我将一个空列表转换为monad结构:

*ExerciseMonad Control.Monad> x = return []
*ExerciseMonad Control.Monad> :t x
x :: Monad m => m [t]
Run Code Online (Sandbox Code Playgroud)

返回的值包含在Monad结构中.

这似乎是一种魔力,我没有得到一个空列表:

*ExerciseMonad Control.Monad> fmap ((:) 3) x
[3]
Run Code Online (Sandbox Code Playgroud)

为什么我没有空列表?

haskell

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

如何获得Sum {getSum = 0}?

我有以下实例实现:

newtype Constant a b =
  Constant { getConstant :: a }
  deriving (Eq, Ord, Show)

type TI a = Constant a

instance Functor (Constant a) where
  fmap _ (Constant a) = Constant a

instance Foldable (Constant a) where
  foldMap _ _ = mempty
Run Code Online (Sandbox Code Playgroud)

然后我试着跟随:

*ExerciseTraversable Data.Monoid> foldMap id (Constant (Sum 34))
()
Run Code Online (Sandbox Code Playgroud)

我确实期望Sum {getSum = 0}而不是().如何获得Sum {getSum = 0}结果?

haskell

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

mergeAll如何工作?

我试图弄清楚如何mergeAll工作并创建了示例:

const clicks = Rx.Observable.interval(4000).map(()=> "first");
const higherOrder = clicks.map((ev) => Rx.Observable.interval(1000).map(() => "inner").take(10));
const firstOrder = higherOrder.mergeAll();
firstOrder.subscribe(x => console.log(x));
Run Code Online (Sandbox Code Playgroud)

它始终输出innerfirst永不输出。打完电话后mergeAll()clicks观察到的不再是相关的?

在更多示例中:

const input = document.getElementById("window");

const clicks = Rx.Observable.fromEvent(input, 'keyup').map(() => "Hello");
const interval = Rx.Observable.interval(4000);
const result = clicks.window(interval)
    .map(win => {
        return win.take(1);
    })
    .mergeAll(); // flatten the Observable-of-Observables
result.subscribe(x => console.log("Result " + x));
Run Code Online (Sandbox Code Playgroud)

在订阅时,我从外部可观察到的结果“结果Hello”而不是内部可观察到的结果。mergeAll在这种情况下扮演什么样的角色?
为什么win变量是一个实例observableHello

javascript rxjs

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

如何使用Data.Functor.Invariant?

请有人请给我一个例子

invmap :: (a -> b) -> (b -> a) -> f a -> f b  
Run Code Online (Sandbox Code Playgroud)

什么是Invariant有益?

haskell

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

带有多列的表格?

我定义了以下简单形式:

<form:SimpleForm id="SimpleFormChange354"
  editable="true"
  layout="ResponsiveGridLayout"
  title="Address"
  labelSpanXL="2"
  labelSpanL="2"
  labelSpanM="3"
  labelSpanS="12"
  adjustLabelSpan="false"
  emptySpanXL="0"
  emptySpanL="0"
  emptySpanM="0"
  emptySpanS="0"
  columnsXL="2"
  columnsL="2"
  columnsM="1"
  singleContainerFullSize="false"
>
  <Label text="Name1"/>
  <Input/>
  <Label text="Name2"/>
  <Input/>
  <Label text="Name3"/>
  <Input/>
</form:SimpleForm>
Run Code Online (Sandbox Code Playgroud)

如你看到的:

在此处输入图片说明

如何将红色标记的元素放置在Name1元素旁边?

sapui5

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

如何将文件从 public 复制到 dist?

我有一个如下所示的公共文件夹:
在此处输入图片说明

使用构建项目后

"prod": "npm run mlbuild | npm run build"
Run Code Online (Sandbox Code Playgroud)

dist 文件夹如下所示:

在此处输入图片说明

但我失踪了config.jsonfavicon.ico而且keycloak.json

期间如何将这些文件放入dist文件夹build

我试过:

  {
    test: /\.(json)(\?v=\d+\.\d+\.\d+)?$/,
    use: [{
      loader: 'file-loader',
      options: {
        name: '[name].[ext]'
      }
    }]
  }
Run Code Online (Sandbox Code Playgroud)

但我想,我不得不提到文件夹。

javascript webpack

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

为什么它是一个记忆功能?

有人可以向我解释,为什么下面的代码是memoization:

fib_mem :: Int -> Integer
fib_mem = (map fib [0..] !!)
where fib 0 = 1
      fib 1 = 1
      fib n = fib_mem (n-2) + fib_mem (n-1) 
Run Code Online (Sandbox Code Playgroud)

haskell

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

无法将类型'[Char]'与'Data.Text.Internal.Text'匹配

我想弄清楚,如何建立JSONHaskell用下面的例子:

module Main where


import GHC.Exts
import Data.Aeson
import qualified Data.Text.Lazy.IO as T
import qualified Data.Text.Lazy.Encoding as T

val :: Value
val = Object $ fromList [
  ("numbers", Array $ fromList [Number 1, Number 2, Number 3]),
  ("boolean", Bool True) ]

main :: IO ()
main = T.putStrLn . T.decodeUtf8 . encode $ val
Run Code Online (Sandbox Code Playgroud)

当我尝试编译时,编译器抱怨:

    • Couldn't match type ‘[Char]’ with ‘Data.Text.Internal.Text’
      Expected type: Item Object
        Actual type: ([Char], Value)
    • In the expression: ("boolean", Bool …
Run Code Online (Sandbox Code Playgroud)

haskell

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

如何阅读MonadReader并询问定义?

我试图弄清楚如何读取以下类类型定义:

Prelude Data.Functor.Identity Control.Monad.Reader> :i ask
class Monad m => MonadReader r (m :: * -> *) | m -> r where
  ask :: m r
  ...
Run Code Online (Sandbox Code Playgroud)

m是更高种类的类型,必须是monad

但是什么m -> r意思呢?

尝试使用ask以下方法:

Prelude Data.Functor.Identity Control.Monad.Reader> ask "Hello"
"Hello"
Run Code Online (Sandbox Code Playgroud)

我为什么可以通过一个论点ask?查看类型签名:

ask :: m r
Run Code Online (Sandbox Code Playgroud)

我无法识别,可以将参数传递给ask

haskell

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

类型Right [Nothing,Map [String,String]]的表达式不符合预期的类型Left [String,Nothing]

我有以下代码,无法编译:

object PcpProtocol {

  private type PcpKV = String

  private val findPublicKey: List[PcpKV] => Either[String, Map[String, String]] = kv =>
    kv
      .filter(_.contains("PUBLIC:"))
      .foldLeft(Left("Can not find the public key from SAP.")) { (_, a) =>
        a.split(":").toList match {
          case List(key, value) => Right(Map(key -> value))
        }

      }
} 
Run Code Online (Sandbox Code Playgroud)

编译器抱怨:

type mismatch;
[error]  found   : scala.util.Right[Nothing,scala.collection.immutable.Map[String,String]]
[error]  required: scala.util.Left[String,Nothing]
[error]           case List(key, value) => Right(Map(key -> value))  
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

scala

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

标签 统计

haskell ×6

javascript ×2

rxjs ×1

sapui5 ×1

scala ×1

webpack ×1