我正在用Ocaml实现一个NFA,编译器在这一行给了我一个错误
module Nfa : NFA =
struct
type transition = int * char option * int
type nfa = int * int list * transition list
let make_nfa s fs ts = nfa (s, fs, ts);;
错误出现在编译器显示为Error: Unbound value nfa的最后一行
我不确定问题出在哪里。谢谢
对于一个项目,我创建了一个基于Int的类型,每当程序试图超限地使用一个值时,它就会抛出一个错误(在我的例子中是0.127)。下面的代码就是这样做的,它对我很有用。
在Haskell中,是否可以在不重复此代码的情况下创建第二种有界类型(例如0.255)?
谢谢你的回答
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module Minitel.Type.MNatural (MNat, mnat, fromMNat) where
-- | The MNat type. The constructor is hidden.
newtype MNat = M
我正在使用bonsai.io,并希望将elasticsearch指向我的同义词文件。在开发过程中,这可以很好地工作,但我无法访问/var/websolr/apps/ and /current/config/将文件放在那里,Rails.root也没有给出应用程序在服务器上的绝对路径。如何在bonsai.io中使用同义词文件?有没有办法让它指向我的应用程序中的相对路径,或者甚至指向我控制的服务器上托管的同义词文件?
很抱歉,如果这个问题已经被问了很多次了--我很难把问题到底是什么,所以我不知道该找什么。
基本上,我已经定义了一个类,它的定义如下:
class (MonadIO m) => Logger m where ...
然后我有一个类型(我想说类型同义词,但我不确定这是否是正确的‘术语’):
type ResourceOpT r m a = StateT (ResourceCache r) m a
为什么这个实例是完全有效的:
instance (MonadIO m) => Logger ( StateT s m )
但不是这个(我想第一个更抽象/更好,但我试图理解为什么):
ins
我有一个单变压器堆栈的类型别名:
type KStat s a = ReaderT (KStatRoot s) (ExceptT KindError (ST s)) a
我需要将用户从这种类型中抽象出来,很大程度上是因为KStatRoot结构导致了循环依赖。因此,我创建了一个单独的模块,并为它定义了一个类型:
class (Monad (m s), MonadError KindError (m s)) =>
MStat m s where
liftToST :: ST s a -> m s a
kstatNewRef :: a -> m s (S
在尝试使用时,我编写了如下代码:
data Name = Name; type instance TypeOf Name = Text
type NameRecord = FieldOf Name;
我发现:
instance I NameRecord where
...
引发编译错误,即:
非法类型同义词族应用实例
鉴于:
instance (NameRecord ~ a) => I a where
...
编译得很好。
我相信这个错误与GHC中标记为无效的票证有关。
对这张罚单的答复是:
我不知道你在说什么。我们不能自动转换
实例C (Fam Int) - (1)
目前,我使用数据结构来模拟C- fields。但我发现,与object.property之类的域驱动编程方式不同,在haskell中,属性名称都被转储到模块名称空间中。当我有多个这样的结构时,这会产生一些问题。例如,如果我有两种数据类型:
data Person = Person { name :: Text, address :: Text }
data Dog = Dog { name :: Text, breed :: Text }
然后GHC会抱怨:Multiple declarations of ‘name’。因此,我必须使用前缀来命名“属性”:
data Person = Pers
在我的主类'A‘中,我声明了一个函数和调用该函数的委托,我想把我的委托传递给另一个类'B’,但是B类怎么知道委托是什么类型呢?
A类
public delegate void SendInfo(string[] info);
SendInfo sendInfo = new SendInfo(SendInformation); //I have a function SendInformation
B b = new B();
b.SetDelegate(sendInfo);
B类
public delegate void SendInfo(string[] info); //
我很难理解newtype声明。我正在用LYAH:进行练习
并希望将newtype用于自定义类型实例化Tofu Frank,如下所示:LYAH的菜谱:,但自己添加newtype-part。
class Tofu t where
tofu :: j a -> t a j
instance Tofu Frank where
tofu x = Frank x
data Frank a b = Frank {frankField :: b a} deriving (Show)
newtype Frank a b = Frank{frankField :: (b a)} deriv
目前,我正在使用相当不错的库,偶然发现了一个基本但可能是基本的问题(我对实际的haskell开发非常陌生)。
我使用它们的基本矩阵类型
data Matrix a b :: * -> * -> *
其中a表示haskell,b表示内部C类型。这是通过限制实现的。
Elem a b
使用
Elem Double CDouble
Elem Float CFloat
-- more for complex types...
虽然不是我想问的问题,但我有点不明白为什么要这样做。既然这显然是一种函数映射,我已经不明白为什么这是一个等价关系,但无论如何.
现在,我想从包中定义一个实例(作为一个
在大型代码库中,我希望重构一个具有字段的构造函数的数据类型,使其成为一个简单的带标记的记录联合,主要是为了更好地支持-Wincomplete-record-updates。重要的是,我不需要在此数据类型上更改任何模式匹配,因此我尝试使用记录模式同义词。下面是一个压缩版本:
{-# LANGUAGE PatternSynonyms #-}
{-# OPTIONS_GHC -Werror=incomplete-patterns #-}
-- Consider some data type with fields:
data D'
= A'
| B' { b
只是关于打字的一个小问题。
如果我在ghci :t [("a",3)]中键入,就会得到[("a",3)] :: Num t => [([Char], t)]
在一个文件中,我定义了一个类型:
type list = [(String, Int)]
如何使用我定义的类型更改类型以支持Int和Double,类似于我在ghci中编写的类型?
我正在做一个项目,在这个项目中,我用微风和我的webapi交谈。我已经设置了一个简单的注册表单,我可以用它注册一个新用户:
public addUser(user: IApiUser): void {
this.dataContext.entityManager.addEntity(this.dataContext.entityManager.createEntity("ApiUserEntity", user));
}
要编写添加的实体,我要调用的webapi方法是在实体管理器上调用的saveChanges()方法:
// Save any changes for t
我在Angular中创建了这个简单的表单form1.component.html <form #personForm="ngForm" (ngSubmit)="submitForm(personForm)" novalidate>
<div>
<label> Enter First Name </label>
<input
type="text"
[(ngModel)]=
所以,如果尝试这个匿名块:
DECLARE
TYPE nums IS TABLE OF integer;
nnum nums;
BEGIN
nnum := nums(1,2);
dbms_output.put_line( nnum.COUNT );
END;
这是可行的,但是当这里:TYPE nums IS TABLE OF I将IS替换为AS时,oracle会出错:
ORA-06550: Encountered the symbol "TABLE" when expecting ...
我在docs中看到,"AS“和"IS”都用于声明
假设有以下情况:
Public MustInherit Class A(Of X As A(Of X, Y), Y As B(Of X, Y))
End Class
Public MustInherit Class B(Of X As A(Of X, Y), Y As B(Of X, Y))
End Class
Public Class D
Private _v As A(Of X As A(Of X, Y), Y AS B(Of X, Y))
Public Sub Initialize(Of X As A(Of X, Y), Y As B(Of X,