标签: forall

如何在现有的Android操作系统源中添加额外的项目?

我正在开发AOSP中的内核开发,我工作的内核存储库不是操作系统的一部分.它有一个单独的git存储库.因此,当我尝试将所有AOSP源推送到服务器时,我无法在那里看到内核源代码.

如何将存储库(项目)添加到现有的Android源代码树中?

git repository manifest android-source forall

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

FORALL循环中的多个SQL语句

我想在oracle中只插入单个FORALL循环的不同表中插入.但FORALL不支持它.任何想法我该怎么办?

   create or replace PROCEDURE test IS
      TYPE avl_web_details IS TABLE OF available_web_details%ROWTYPE;
      var_avl_web_details avl_web_details := avl_web_details();
      UNIONTABLE VARCHAR2(30000);
      TYPE RepCurTyp IS REF CURSOR; 
      Rep_cv RepCurTyp; 
   BEGIN
      UNIONTABLE := '';
  execute immediate 'update tbl_used_webuda1 set flag=1';
  FOR tbl IN (SELECT tablename FROM tbl_used_webuda1 where flag=1)
      LOOP             
    UNIONTABLE := UNIONTABLE || 'select *' || ' from ' || tbl.tablename || 'union all ';     
END LOOP;

       IF (LENGTH(UNIONTABLE) > 10) THEN
      UNIONTABLE := '( ' || SUBSTR(UNIONTABLE,1, length(UNIONTABLE)-10) || ' ) '; …
Run Code Online (Sandbox Code Playgroud)

sql oracle11g forall

7
推荐指数
2
解决办法
3万
查看次数

Haskell中“ undefined”的类型签名是什么意思?

我是Haskell的初学者,而undefined函数的类型签名使我大吃一惊。

我期待更简单的东西,但是我在Hackage上发现了这一点:

undefined :: forall (r :: RuntimeRep). forall (a :: TYPE r). HasCallStack => a
Run Code Online (Sandbox Code Playgroud)

错误的特殊情况。期望编译器将识别出这种情况并插入更适合undefined出现上下文的错误消息。

您能解释一下这个签名是什么意思吗?

谢谢!

haskell types undefined forall type-signature

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

如何确保我的Fortran FORALL构造被并行化?

我已经获得了一个2D矩阵,表示金属板表面的温度点.基质(板)的边缘保持恒定在20摄氏度,并且在一个预定点处存在100摄氏度的恒定热源.所有其他网格点最初设置为50摄氏度.

我的目标是通过对周围的四个网格点(i + 1,i-1,j + 1,j-1)进行迭代平均来获取所有内部网格点并计算其稳态温度,直到达到收敛(迭代之间小于0.02摄氏度).

据我所知,迭代网格点的顺序是无关紧要的.

对我来说,这听起来像是调用Fortran FORALL构造并探索并行化乐趣的好时机.

如何确保代码确实是并行化的?

例如,我可以在我的单核PowerBook G4上编译它,并且由于并行化,我预计速度不会提高.但如果我在双核AMD Opteron上编译,我会假设FORALL结构可以被利用.

或者,有没有办法衡量程序的有效并行化?

更新

回答MSB的问题,这是与gfortran版本4.4.0.gfortran是否支持自动多线程?

值得注意的是,FORALL结构已被淘汰,我想,那就是自动向量化.

也许这对于一个单独的问题是最好的,但自动矢量化是如何工作的?编译器是否能够检测到循环中只使用纯函数或子例程?

parallel-processing fortran forall

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

对于PersistFieldSql,GeneralizedNewtypeDeriving失败

我正在尝试定义Markdown newtype,并使用GeneralizedNewtypeDeriving自动定义新实例:

import Text.Markdown
import Yesod.Text.Markdown
import Database.Persist.Sql

newtype MarkdownNewT = MarkdownNewT { getMarkdown :: Markdown }
  deriving (Eq, IsString, Monoid, PersistField, PersistFieldSql)
Run Code Online (Sandbox Code Playgroud)

对于PersistFieldSql以下消息,此操作失败:

Could not coerce from ‘m Markdown’ to ‘m MarkdownNewT’
  because ‘m Markdown’ and ‘m MarkdownNewT’ are different types.
  arising from the coercion of the method ‘sqlType’ from type
               ‘forall (m :: * -> *). Monad m => m Markdown -> SqlType’ to type
               ‘forall (m :: * -> *). Monad m …
Run Code Online (Sandbox Code Playgroud)

haskell forall newtype

5
推荐指数
1
解决办法
195
查看次数

用元组类型统一多类量化变量

我有以下表示类别的类别,其中对象类别由一种种类表示,每个hom类由一种由上述种类的类型索引的类型表示。

{-# LANGUAGE GADTs, DataKinds, KindSignatures, PolyKinds #-}

type Hom o = o -> o -> *

class GCategory (p :: Hom o)
  where
  gid :: p a a
  gcompose :: p b c -> p a b -> p a c
Run Code Online (Sandbox Code Playgroud)

一个实例的简单示例是:

instance GCategory (->)
  where
  gid = id
  gcompose = (.)
Run Code Online (Sandbox Code Playgroud)

现在,我要对产品类别进行建模。作为一个简单的起点,下面是一个类型,它对->与本身的乘积相对应的类别的词素进行建模:

data Bifunction ab cd
  where
  Bifunction :: (a -> c) -> (b -> d) -> Bifunction '(a, b) '(c, d)
Run Code Online (Sandbox Code Playgroud)

这是相应的操作:

bifunction_id :: Bifunction …
Run Code Online (Sandbox Code Playgroud)

haskell forall data-kinds polykinds

5
推荐指数
1
解决办法
101
查看次数

这个 GHC 功能叫什么?类型定义中的“forall”

我了解到,您可以ContT变压器中重新定义,以使r类型参数隐式化(并且可以使用显式指定TypeApplications),即:

-- | Same as `ContT` but with the `r` made implicit
type ContT ::
  forall (r :: Type).
  (Type -> Type) ->
  Type ->
  Type
data ContT m a where
  ContT ::
    forall r m a.
    {runContT :: (a -> m r) -> m r} ->
    ContT @r m a

type ContVoid :: (Type -> Type) -> Type -> Type
type ContVoid = ContT @()
Run Code Online (Sandbox Code Playgroud)

我没有意识到这在 GHC 中是可能的。更大的功能是什么,用来指代这种使用隐式 …

haskell ghc forall

5
推荐指数
1
解决办法
130
查看次数

如何理解米田自然同构中的普遍量化?

在学习 Yoneda 引理时,我发现了 Haskell 中潜在的自然同构的以下编码:

forward  :: Functor f => (forall r . (a -> r) -> f r) -> f a
forward  f = f id

backward  :: Functor f => f a -> (forall r. (a -> r) -> f r)
backward  x f = fmap f x
Run Code Online (Sandbox Code Playgroud)

我尝试简化backwardto的实现flip fmap,但失败了,因为后者具有 type f a -> (a -> r) -> f r

从这里开始,我就一直致力于查明这两种实现之间的差异。更重要的是,将任一函数应用于具体函子都会产生相同的结果类型:

ghci> :t bw (Just "") 
bw (Just "") :: (String -> r) …
Run Code Online (Sandbox Code Playgroud)

haskell category-theory forall

5
推荐指数
1
解决办法
284
查看次数

`forall a -> b` 语法是什么意思?

在GHCi中,其类型FUN显示如下:

\n
\xce\xbb> :k FUN\nFUN :: forall (n :: Multiplicity) -> * -> * -> *\n
Run Code Online (Sandbox Code Playgroud)\n

起初,我以为这是一种迂回的表达方式

\n
FUN :: Multiplicity -> * -> * -> *\n
Run Code Online (Sandbox Code Playgroud)\n

但事实证明 Template Haskell 对于这种形式有一个单独的构造函数:ForallVisT。我找不到任何关于它的文档,而且我不知道如何开始以有意义的方式进行实验。

\n

这个语法是什么意思?forall a -> b与“正常”有什么不同forall a. a -> b

\n

haskell types existential-type forall data-kinds

4
推荐指数
1
解决办法
229
查看次数

如何计算Chapel forall循环中的迭代次数

我想知道使用Chapel时循环的执行次数forall.使用CDO库的此代码失败,我确信这样做是正确的.有人能给我一个很好的例子吗?

var j:int = 0;
writeln("\n=== FORALL LOOP ===");
forall row in cursor {
  writeln("from: ", row['from_nm'], "\tto: ", row['to_nm']);
  j += 1;
}
writeln("Expected 10 rows, got ", j);
Run Code Online (Sandbox Code Playgroud)

错误是

faerr.chpl:59: error: illegal lvalue in assignment
faerr.chpl:57: note: The shadow variable 'j' is constant due to forall intents in this loop
Run Code Online (Sandbox Code Playgroud)

forall chapel

3
推荐指数
1
解决办法
84
查看次数

如果不使用类型类约束,forall 有什么用?

我已经读完了 Existential Types Wikibook,它比较forall了使用小写字母来定义泛型类型。然后它说真正的用处forall是当你将它与类型类一起使用时。也就是说,forall让您的函数可以使用许多符合某种类型类的类型。

例子:

 data ShowBox = forall s. Show s => SB s
Run Code Online (Sandbox Code Playgroud)

好吧,我发现了一个真正的世界用法:

spock :: forall conn sess st. SpockCfg conn sess st -> 
                               SpockM conn sess st () -> IO Middleware
<Source>
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到,在它使用但没有类型类约束的源代码forall

spock :: forall conn sess st. SpockCfg conn sess st -> 
                               SpockM conn sess st () -> IO Wai.Middleware
spock spockCfg spockAppl =
    do connectionPool <-
           case poolOrConn of
             PCNoDatabase -> …
Run Code Online (Sandbox Code Playgroud)

haskell forall

3
推荐指数
1
解决办法
136
查看次数

如何在PL/SQL中使用BULK COLLECT和FORALL替换CURSOR FOR LOOP?

如何在PL/SQL中使用BULK COLLECT和FORALL替换CURSOR FOR LOOP?我想有一种更有效的方法来更新单个表中的记录.

假设我有以下PL/SQL代码:

DECLARE
   var_buy_more_shoes   inventory.buy_more_shoes%TYPE := NULL;
   var_buy_more_bananas   inventory.buy_more_bananas%TYPE := NULL;
   var_buy_more_iphone6s   inventory.buy_more_iphone6s%TYPE := NULL;

   CURSOR cur
   IS
      SELECT *
        FROM inventory
      FOR UPDATE;

BEGIN
   FOR rec IN cur
   LOOP
      IF rec.pair_of_shoes_left <= 100
      THEN
         var_buy_more_shoes := 'Yes';
      END IF;

      IF rec.weight_of_bananas_left <= 200
      THEN
         var_buy_more_bananas := 'Yes';
      END IF;

      IF rec.number_of_iphone6s_left <= 50
      THEN
         var_buy_more_iphone6s := 'Yes';
      END IF;

      UPDATE inventory a
         SET A.buy_more_shoes = var_buy_more_shoes,
             A.buy_more_bananas = var_buy_more_bananas,
             A.buy_more_iphone6s = var_buy_more_iphone6s
       WHERE CURRENT OF cur; …
Run Code Online (Sandbox Code Playgroud)

plsql for-loop forall bulk-collect

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

FORALL + EXECUTE IMMEDIATE + INSERT进入tbl SELECT

我被困在下面并且语法错误 - 请帮忙.基本上我使用一个集合来存储几个部门ID,然后想要在FORALL语句中将数据插入到emp表中时使用这些部门ID作为过滤条件.

下面是示例代码:在编译此代码时我收到错误,我的要求是使用INSERT INTO表select*from table并且无法避免它所以请建议.

create or replace Procedure abc(dblink VARCHAR2)
 CURSOR dept_id is select dept_ids from dept;
 TYPE nt_dept_detail IS TABLE OF VARCHAR2(25);
 l_dept_array nt_dept_detail;
Begin
 OPEN dept_id;
 FETCH dept_id BULK COLLECT INTO l_dept_array;
 IF l_dept_array.COUNT() > 0 THEN

    FORALL i IN 1..l_dept_array.COUNT SAVE EXCEPTIONS
      EXECUTE IMMEDIATE 'INSERT INTO stg_emp SELECT
      Dept,''DEPT_10'' FROM dept_emp'||dblink||' WHERE
      dept_id = '||l_dept_array(i)||'';      
      COMMIT;
 END IF;
 CLOSE dept_id;
 end abc;
Run Code Online (Sandbox Code Playgroud)

oracle forall

0
推荐指数
1
解决办法
1328
查看次数