小编Jus*_*ley的帖子

如何将CheckingFuelMonad与Hoopl中的State monad结合使用?

我正在使用Hoopl库,并希望在重写时携带一些状态.关于使用的monad,重写函数是多态的,但我无法弄清楚如何将Statemonad与库的Fuelmonad组合.

以下是一个最小的例子.MyMonad是Hoopl CheckingFuelMonadState携带旗帜的monad 的同义词.Stmt只是我的中间语言的占位符,并不是很重要.

{-# LANGUAGE GADTs, RankNTypes #-}

import Compiler.Hoopl
import Control.Monad.State

type MyMonad = CheckingFuelMonad (State Bool)

data Stmt e x where
  Bind :: () -> Stmt O O

rewriter :: forall e x. Stmt e x -> Fact x () -> MyMonad (Maybe (Graph Stmt e x))
rewriter (Bind ()) () = return $ do
  f <- get
  if f 
   then return $ Just …
Run Code Online (Sandbox Code Playgroud)

monads haskell state-monad hoopl

7
推荐指数
1
解决办法
323
查看次数

展示如何使用 Android ID 认证的示例代码

Android 8 添加了“ID 证明”(根据https://source.android.com/security/keystore/attestation#id-attestation)。

有没有人想出如何使用这个功能?我发现的最接近的是AttestationUtils.javahttps://android.googlesource.com/platform/frameworks/base/+/master/keystore/java/android/security/keystore/AttestationUtils.java),但我不这些 API 随 Android SDK 一起提供。使用P开发者预览版 (compileSdkVersion 'android-P'targetSdkVersion 'P')时,它们不会出现在我的 IDE 中。

security android android-keystore

6
推荐指数
1
解决办法
1105
查看次数