标签: record

用于返回带有修改字段的Haskell记录的函数

鉴于:

data MyRecord a = MyRecord{list :: [a], other_fields :: Char, …}
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写一个函数,它将一个新a的列表放入并返回一个新的MyRecord:

pushOntoList :: a -> MyRecord -> MyRecord
Run Code Online (Sandbox Code Playgroud)

问题:

有没有一种方法可以写出pushOntoList这样的方式,它不依赖于记录的其余部分,而只是简单地将其修改为未经修改?

问这个问题的另一种方法是你可以在pushOntoList不看清楚其余MyRecord定义的情况下编写吗?

syntax haskell record

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

graphviz:带有粗体标题的记录节点

我正在尝试使用graphviz来执行类似于UML类图的操作.

我想知道是否有一种方法可以使样式'register'的节点具有粗体字的第一个字段,使其与其他字段不同.

我的节点看起来像这样:

digraph i { 
  "node" [
    label = "<f0> title | <f1> index | ... | <f2> field1 | <f3> field2"
    shape = "record"
  ];  
}
Run Code Online (Sandbox Code Playgroud)

我试过这个但它不起作用:(嵌入html)

digraph i { 
  "node" [
    label = "<f0> <B>title</B> | <f1> index | ... | <f2> field1 | <f3> field2"
    shape = "record"
  ];  
}
Run Code Online (Sandbox Code Playgroud)

uml record dot graphviz

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

Haskell记录,清洁方法?

我已经阅读了Haskell记录的一些问题,特别是同一模块中的两个元素不能具有相同名称的事实.

我知道你可以通过单独的模块解决这个问题,但我不想这样做,而是尝试了这种方法:

class HasX a where
  x :: a -> X

data D1 = D1 { d1_x :: X, ... }
instance HasX D1 where
  x = d1_x

data D2 = D2 { d2_x :: X, ... }
instance HasX D2 where
  x = d2_x
Run Code Online (Sandbox Code Playgroud)

(这只是获取,而不是设置,我当然需要编写更多代码来做集合).

但是,似乎所有这些的类和实例声明看起来像样板文件,应该可以使用模板haskell或其他东西来消除.

是否存在GHC的库或扩展,使得这种方法不那么混乱?

haskell record

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

clojure中的记录文档

我以前有一个api,其中有许多功能,所有这些都需要一个非常特殊的格式的地图.当它来记录这个API,我发现,在这些功能的每我被重复的文档字符串"与此函数被调用的地图上必须是如此这般的格式,并且在地图上的该字段表示如此这般".

所以我认为这些函数更好地记录,而我可以只记录记录.然而,似乎不可能记录记录,至少以doc宏或Marginalia 解释的方式记录.

这里建议的解决方案是"只需在记录的元数据中添加一个:doc键".

我试过(defrecord ^{:doc "Here is some documentation"} MyRecord [field1 field2])但宏观扩展这表明它没有任何影响.还defrecord返回一个java.lang.class没有实现IMeta 的实例,所以我不确定我们能给它元数据吗?

  • 如何记录记录?
  • 记录是否适用于此处?

documentation record clojure

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

在记录中计算施工期间的成员

我创建了一个 Java record,并且希望有一个构造函数,与默认构造函数相比,该构造函数接受的参数数量减少,并根据给定的参数计算和初始化所有成员。

但是,我发现这很难实现,因为自定义构造函数的第一行必须调用默认构造函数。我当前的方法是根据需要调用我的计算函数,但这会导致不必要的处理。

当然必须有更好的方法来实现这一目标吗?

public record MyRecord(double a, double b, double c) {
     public MyRecord(double a) {
          this(a, calculateB(a), calculateC(a, calculateB(a)));
     }

     private static double calculateB(double a) {
          // Some calculations 
          return b;

     }

     private static double calculateC(double a, double b) {
          // Some calculations 
          return c;
     }
}

Run Code Online (Sandbox Code Playgroud)

java record

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

用python检测并录制声音

我正在使用这个程序在python中录制声音:

用Python检测和录制音频

我想更改程序,以便在声卡输入检测到声音时开始录制.可能应该比较块中的输入声级,但是这怎么做?

python audio record detect

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

将记录添加到numpy记录数组中

假设我定义了一个记录数组

>>> y=np.zeros(4,dtype=('a4,int32,float64'))
Run Code Online (Sandbox Code Playgroud)

然后我继续填写可用的4条记录.现在我获得了更多数据,比如

>>> c=('a',7,'24.5')
Run Code Online (Sandbox Code Playgroud)

我想将此记录添加到y.我无法想出一个干净的方法来做到这一点.我见过的最好的np.concatenate(),但这需要c变成一个记录阵列本身.是否有任何简单的方法可以将我的元组添加c到其中y?这似乎应该是非常简单和广泛记录的.如果是的话道歉.我找不到它.

python numpy record concatenation

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

如何在C#中创建F#匿名记录?

我可以看到,如果我创建了一个新的匿名记录,例如。

let myRecord = {| SomeInteger = 5 |}
Run Code Online (Sandbox Code Playgroud)

那么如果它暴露在C#中,我可以用

var someInteger = myRecord.SomeInteger;
Run Code Online (Sandbox Code Playgroud)

如果我有F#函数,反过来又说:

let unwrap (record : {| SomeInteger : int |}) = record.SomeInteger
Run Code Online (Sandbox Code Playgroud)

而且它暴露给C#,如何从C#实例化此函数的参数并调用它?我天真地尝试只在其中放置一个C#匿名类型,即。

var unwrapped = unwrap(new { SomeInteger = 5 });
Run Code Online (Sandbox Code Playgroud)

但这没有编译。我在RFC中注意到该功能,它表示“该功能必须实现与C#匿名对象(来自C#3.0)的兼容性”,但并未以哪种方式具体提及。支持吗?

c# f# record

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

在 Entity Framework Core 上禁用 AutoDetectChanges

有人知道如何禁用 EFCore 上的 AutoDetectChanges 吗?

我需要这样做,因为我必须在我的数据库中进行大量导入,并且无法在网上找到信息。

试过这个,但它不起作用:

_context.Configuration.AutoDetectChangesEnabled = false;
Run Code Online (Sandbox Code Playgroud)

说配置不存在。

非常感谢。

c# sql record entity-framework-core asp.net-core

11
推荐指数
3
解决办法
7627
查看次数

我可以输入部分记录吗?

我有一个Person带有名称和 ID的记录,以及一个createPerson返回Personwithout的函数,将id生成 UUID 留给调用者。:

-- Person.hs
import Data.UUID (UUID)

data Person = Person { name :: String, id :: UUID }

createPerson name = Person { name = name }
Run Code Online (Sandbox Code Playgroud)

有没有办法在Person没有id,的情况下输入 a来通知调用者id Person将抛出异常?我考虑过定义 aPartialPerson如下:

data PartialPerson = { name :: String }
Run Code Online (Sandbox Code Playgroud)

但是当我想添加或更改字段时,这很快就会变得很麻烦。

haskell types record

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