问题列表 - 第318079页

理解 Haskell 中存在类型的类型定向解析

我一直在学习Haskell,遇到了一个困惑。当使用自定义类型类定义存在类型时,作为同一自定义类型类的实例的其他代数数据类型似乎共享该类型类的相同结构。

这是一个例子:

{-# LANGUAGE ExistentialQuantification #-}

class MyShow a where
    myShow :: a -> String

data Showable = forall a. MyShow a => Showable a

instance MyShow Showable where
    myShow (Showable a) = myShow a

data CustomType = CustomInt Int | CustomString String

instance MyShow CustomType where
    myShow (CustomInt i) = "CustomInt " ++ show i
    myShow (CustomString s) = "CustomString " ++ s

main :: IO ()
main = do
    let intShowable = Showable (CustomInt 5)
        stringShowable = Showable …
Run Code Online (Sandbox Code Playgroud)

haskell

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

R预测包如何处理ARIMA中的缺失值(auto.arima函数)

我在 R 中对缺失值的数据运行 ARIMA 模型。这是财务数据,因此缺失的日期要么是公共假期,要么是周末,所以不是完全随机的。我仍在思考应该对缺失值做出哪个决定。

然而,我看到的是该函数本身运行没有错误。因此 ARIMA 会自动以某种方式处理缺失值。但我在文档中找不到运行 ARIMA 时缺失值到底发生了什么(只是为了知道它是否会删除它们/估算或其他什么?)

best_fit = auto.arima(data_vector, stationary = is_stationary, ic = "bic", stepwise = FALSE, allowmean = TRUE, allowdrift = TRUE, approximation = FALSE)
Run Code Online (Sandbox Code Playgroud)

有人知道 auto.arima 默认情况下做什么吗?

r forecasting arima forecast

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

以 TStringList 形式返回所有枚举项

我的函数EnumToStringList()本身可以编译,但我无法使用应用程序中的任何枚举类型调用它:

[dcc64 错误] Unit_test.pas(119): E2029 '(' 预期但 ')' 找到

我的方法有什么问题吗?

function EnumToStringList(const TypeInfo: pTypeInfo): TStringlist;
var  i : Integer;
begin
  Result := TStringList.Create;
  for i := GetTypeData(TypeInfo)^.MinValue to GetTypeData(TypeInfo)^.MaxValue do
    begin
      result.add (GetEnumName(TypeInfo, i));
    end;
end;
        
function EnumToString(const TypeInfo: pTypeInfo; Ix: Integer): string;
begin
  result := GetEnumName(TypeInfo, Ix);
end;
    
type
  TProjectTypes = (low,hot,skip,pause,others);

// test code:
MyProjectStrings := EnumToStringList (TProjectTypes);
Run Code Online (Sandbox Code Playgroud)

delphi enums tstringlist typeinfo

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

Map 中 List 类型的 Kotlin 可空接收器?

在 Kotlin 中,从映射访问值会在不同的访问方式上提供不同的接收器类型

Map的类型是LinkedHashMap类型

如果我不检查这一行为空

println("Morning: ${daypartEvents[Daypart.MORNING].size}")

编译器给出错误

List 类型的可空接收器上只允许安全 (?.) 或非空断言 (!!.) 调用?

但是,如果尝试使用 forEach 函数迭代映射来获得相同的结果,如下所示

daypartEvents.forEach { (daypart, events) -> println("$daypart: ${events.size}") }

它不希望我对它进行空检查。

即使我做空检查它说

对 List 类型的非空接收器进行不必要的安全调用

我知道这个问题的框架很糟糕,所以请耐心等待

我在这里想知道的是为什么 List 类型的映射的值首先可以为空,然后不能为空。

为了清晰起见,完整代码

enum class Daypart {
    MORNING, AFTERNOON, EVENING
}

data class Event (
    val title: String,
    val description: String? = null,
    val daypart: Daypart,
    val duration: Int
)

fun main() {
    
    val event1 = Event(title = "Wake up", description = "Time to get up", daypart = …
Run Code Online (Sandbox Code Playgroud)

kotlin

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

Linux 套接字 - 服务器接受客户端,但客户端失败并出现 errno 127

问题

我目前正在开发一个项目,需要在 ESP32 客户端和笔记本电脑上运行的服务器之间建立 TCP 连接。服务器端似乎正在工作,服务器侦听连接并等待客户端套接字接受。当我启动客户端 ESP32 时,服务器打印出一条消息“SOCKET ACCEPTED”,但客户端打印出“UNABLE TO CONNECT TO SERVER: ERRNO 127”。我在网上看到 errno 127 意味着密钥已过期,但是我无法找到解决此问题的方法。以下是我的服务器和客户端的代码,任何帮助将不胜感激。

服务器代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdbool.h>
#include <limits.h>

//write an error function
void error (const char *msg){
    perror(msg);
    exit(EXIT_FAILURE);
}

int main (int argc, char *argv[]){
    //function variables
    int sockFD = 0;
    int PORT = 0;
    const int MAX_CONNECTIONS;
    int n = 0;
    char buffer[255] = {' '};
    struct sockaddr_in serverAddr; …
Run Code Online (Sandbox Code Playgroud)

c sockets tcp esp32 esp-idf

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

Terraform ec2 实例类型有条件吗?

我想根据 .tfvars 文件的条件创建 Spot 实例。否则我想要一个常规的 ec2 实例。我知道有一个三元条件,但不确定如何正确使用它。

spot = var.spot_instance ? instance_market_options {
    market_type = "spot"
  } : 
Run Code Online (Sandbox Code Playgroud)
resource "aws_launch_template" "foo" {
  name = "foo"
  iam_instance_profile {
    name = "test"
  }
  image_id = "ami-test"
  instance_market_options {
    market_type = "spot"
  }
  instance_type = "t2.micro"
}
Run Code Online (Sandbox Code Playgroud)

或者可能是这个?

instance_market_options = var.spot_instance ? {
    market_type = "spot" 
  } : 
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services terraform terraform-provider-aws

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

如何(更快)找到使涉及多个 LazyFrame 列的函数的结果最小化的 x 值?

我有一个 LazyFrame,其中包含几个时期内的多列每小时数据。对于每个周期,我想找到涉及多列数学运算的函数的 x 值,以最小化结果。

\n

我使用 scipy.optimize.minimize 来完成此操作,并且实际上获得了所需的结果。问题是这个过程运行得非常慢,所以我只是在寻找任何能完成相同但更快的事情。

\n
    def minimization_target(x, period_start):\n        return hourly_data.filter(pl.col('period_start') == period_start).select((((pl.col('price').median() * pl.col('quantity').median() - (pl.col('estimated_quantity') * (pl.col('estimated_price') + x)).sum()) / (pl.col('key_product') * (pl.col('estimated_price') + x)).sum())).abs() - 1).abs()).collect().item()\n\n    results = hourly_data.group_by('period_start', maintain_order=True).map_groups(lambda group: pl.DataFrame({'x_values': scipy.optimize.minimize(minimization_target, group.get_column('initial_guess').median(), args=group.get_column('period_start').median()).x}), schema=None)\n
Run Code Online (Sandbox Code Playgroud)\n

最小的例子:

\n
import scipy\nimport polars as pl\nfrom datetime import datetime\n\nhourly_data = pl.DataFrame({'period': [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3], 'price': …
Run Code Online (Sandbox Code Playgroud)

python scipy python-polars

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

Coldfusion CreateObject() 返回错误对象的实例

我遇到了一个似乎只影响我们的生产服务器的问题,没有任何明显的规律或原因。本质上,我们收到以下错误(我将使用虚拟名称来说明这一点):

消息:在组件 Components.services.SomeComponent 中找不到方法 someFunction,在任何实现接口中也没有任何具有此名称的默认方法。

这种情况发生在代码库中的几行不同的地方,但一旦被抛出,它就永远不会再超过该点,直到清除 CFADMIN 中的组件缓存。关键在于:代码中的违规行如下所示:

<cfset var a = createObject("Components.services.app.ComponentA").someFunction() >

似乎createObject对 create ComponentA 的调用返回的是SomeComponent的实例。我尝试过以下方法:

  • 本节中的 CreateObject 调用一直使用动态创建的字符串作为组件路径...我想也许有些东西被污染了,所以现在Components.services.app.ComponentA、Components.services.app.ComponentB等等...都是硬编码的
  • 我尝试使用new语法而不是createObject
  • 我认为组件缓存变得混乱的路径可能有问题,所以我创建了一个映射到./Components/services/app调用(例如)“app”,这样我就可以创建像这样的对象new app.ComponentA()而不是new Components.services.app.ComponentA

似乎没有什么帮助——这些在我们的 UAT 或任何人的开发环境中都无法重现,并且在生产中是间歇性的,但是,一旦抛出,服务器就完成了。清除 CFADMIN 中的组件缓存可以暂时修复它,直到几个小时后有人再次随机抛出它。

一些额外的警告:

  • 当我们移动和洗牌试图找到此问题的原因时,特定的行号和组件似乎发生了变化,但行为始终相同 -new ComponentC()是创建someComponent...new ComponentA()而不是创建someOtherComponent
  • 这种情况只发生在我们的代码库的一个特定部分,与我们的代码的其余部分相比,该部分使用了大量的对象继承。我们进行了彻底梳理,以确保不存在任何循环引用或类似内容,并且邪恶组件 ( someComponent, someOtherComponent) 是位于此目录之外的 CFC
  • 事实上,清除组件缓存似乎可以解决这个问题,这确实让我对组件缓存产生了怀疑……我只是对 CF 的了解不够,无法理解为什么缓存可能会返回与以下对象不同的对象的实例:它正在呼叫的那个

后续步骤(这些都不理想):

  • 完全禁用组件缓存,不想承受性能损失
  • 添加一些荒谬的代码,以便在抛出无效方法名称错误时以编程方式清除组件缓存

是否有某种方法可以精细地排除从组件缓存中检索某些 CFC,并在调用 …

coldfusion cfc createobject coldfusion-2021

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

Firebase 安全规则。如何允许存储在文档内数组中的管理员访问?

我有一个 firebase firestore 文档,其中将管理员 ID 存储在管理员数组中。如果请求用户 ID 位于该管理员列表中,如何创建允许读取和写入的安全规则。

我想知道3个案例:

  1. 如果我有这条规则,我如何还允许管理员写入和读取:

    match /users/{uid}{
      allow read,write: if request.auth != null;
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我可以在 securityrules 中创建一个函数,例如isAdmin() ,我可以在每个规则中使用它来接受管理员吗?

  3. 是否可以制定一个(或两个)规则来允许管理员读取和写入数据库中的所有内容,而不是为每个集合编写规则?

firebase firebase-security google-cloud-firestore

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

C++。使用自定义 lambda 将二进制数组累加为整数

如何将包含 0 和 1 的二进制数组累加为整数?

vector<int> arr = {1,0,1,0,1,1,1,0,1,0,0};

int num = accumulate(
    arr.begin(), arr.end(), 
    [](int &a, int &b)
    { 
        // ???  
    }
);
Run Code Online (Sandbox Code Playgroud)

在每一步我都需要这样的东西:

if(arr[i] % 2) num += pow(2, i);
Run Code Online (Sandbox Code Playgroud)

但是如何在 lambda 中实现这一点呢?如何进入ilambda?

c++ lambda c++11

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