AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / coding / 问题

All perguntas(coding)

Martin Hope
Joris KBos
Asked: 2025-04-17 02:30:49 +0800 CST

Lean 4: Usuário Agda com dificuldades para entender o tipo de igualdade do Lean, incompatibilidade de tipos, não redução

  • 7

Estou bastante confortável com o Agda. Decidi experimentar o Lean, mas acho que a igualdade proposicional está realmente me atrapalhando. Às vezes, acho que o RFL simplesmente funciona, mas outras vezes não, por razões que me escapam completamente, o que é bastante frustrante. Para dar um exemplo:

inductive Λ where
  | var : String → Λ
  | app : Λ → Λ → Λ
  | abs : String → Λ → Λ
  deriving Repr, BEq, DecidableEq

def FV : Λ → HashSet String
  | Λ.var x => HashSet.ofList [x]
  | Λ.app m n  => FV m ∪ FV n
  | Λ.abs x m => (FV m).erase x
  
#eval FV (Λ.var "x")  -- Std.HashSet.ofList ["x"]
example : FV (Λ.var "x") = HashSet.ofList ["x"] := rfl  -- fine
example : (2 == 1 + 1) = true := rfl -- fine
#eval FV (Λ.var "x") == HashSet.ofList ["x"]  -- true
example : (FV (Λ.var "x") == HashSet.ofList ["x"]) = true := rfl
--type mismatch
--  rfl
--has type
--  ?m.9390 = ?m.9390 : Prop
--but is expected to have type
--  (FV (Λ.var "x") == HashSet.ofList ["x"]) = true : Prop

As expressões são avaliadas conforme o esperado, mas nos dois primeiros exemplos, rfl funciona perfeitamente, mas no último, misteriosamente, não funciona, aparentemente sem reduzir os termos em ambos os lados de = . Eu poderia imaginar dois HashSets com os mesmos valores nem sempre sendo iguais, pois poderiam ter acabado em grupos diferentes, mas não tenho certeza se esse é o problema, porque parece ser avaliado perfeitamente.

functional-programming
  • 1 respostas
  • 31 Views
Martin Hope
Milacay
Asked: 2025-04-17 02:00:55 +0800 CST

C# JSON - Como obter valor dentro de um objeto aninhado em uma lista

  • 5

Sou iniciante em C#. Estou tentando converter uma string JSON em uma lista parecida com esta:

firstName   lastName  departmentID
John        Doe       AAA111
John2       Doe2      BBB222

Postagem atualizada - com base na resposta do David (obrigado por isso). Desculpe por toda a confusão que posso ter causado.

Aqui está o código:

public IActionResult JsonTest()
{

    var respJSON = @"
        [
              {
                ""firstName"": ""John"",
                ""lastName"": ""Doe"",
                ""departmentID"": { ""id"": ""AAA111"" },
              },
              {
                ""firstName"": ""John2"",
                ""lastName"": ""Doe2"",
                ""departmentID"": { ""id"": ""BBB222"" }
              }
          ]
        ";

    List<UserNameWithDept> user = JsonConvert.DeserializeObject<List<UserNameWithDept>>(respJSON);

    return Ok();
}


public class Identifier
{
    [JsonProperty("id")]
    public string Id { get; set; }
}

public class UserNameWithDept
{
    [JsonProperty("firstName")]
    public string FirstName { get; set; }

    [JsonProperty("lastName")]
    public string LastName { get; set; }

    [JsonProperty("departmentID")]
    public Identifier Department { get; set; }
}

Estou pegando o Departamento como um objeto e então o valor dentro dele. insira a descrição da imagem aqui

Como posso fazer a lista ficar assim? Departamento tem valor, não objeto.

Department  "AAA111"
FirstName   "John"
LastName    "Doe"
c#
  • 1 respostas
  • 53 Views
Martin Hope
Stephen
Asked: 2025-04-17 01:58:39 +0800 CST

Grupos semelhantes a pandas polares salvam em arquivos por cada valor

  • 7

Resumindo um problema maior ao essencial, eu gostaria de fazer o seguinte:

import numpy as np
import pandas as pd

df = pd.DataFrame({'a': np.random.randint(0, 5, 1000), 'b': np.random.random(1000)})

for aval, subdf in df.groupby('a'):
    subdf.to_parquet(f'/tmp/{aval}.parquet')

em Polares usando LazyFrame:

import numpy as np
import pandas as pd
import polars as pl

df = pd.DataFrame({'a': np.random.randint(0, 5, 1000), 'b': np.random.random(1000)})

lf = pl.LazyFrame(df)
# ???

Gostaria de poder controlar o nome dos arquivos de saída de maneira semelhante.

Obrigado!

python
  • 3 respostas
  • 44 Views
Martin Hope
Pietro
Asked: 2025-04-17 01:52:05 +0800 CST

Como escrever um alias de função membro?

  • 7

No C++ moderno é possível escrever um alias de função membro com uma sintaxe diferente desta:

class C {
   int f(int a) { return ++a; }
   inline int g(int a) { return f(a); }
};

Tentei de algumas maneiras, mas nenhuma funcionou:

class C {
   int f(int a) { return ++a; }
   const auto g1 = f;  // error: 'auto' not allowed in non-static class member
   auto& g2 = f;       // error: 'auto' not allowed in non-static class member
   using g3 = f;       // error: unknown type name 'f'
};

Por favor, não sugira usar o pré-processador...

Por que preciso disso? Porque:

  • Tenho um código existente que não posso modificar e que usa a função de membro antiga, e um código novo que deve usar a nova.
  • Gostaria de evitar a chamada extra (mesmo que ela possa ser otimizada).

PS: erros gerados pelo clang 20.1.0

c++
  • 1 respostas
  • 162 Views
Martin Hope
EarthTurtle
Asked: 2025-04-17 01:14:26 +0800 CST

Iterador Java de correspondências de regex de uma grande fonte

  • 6

O problema básico é que preciso gerar todas as correspondências de uma regex dentro de um arquivo, mas há algumas propriedades que tornam a solução complicada:

  1. O arquivo pode ser muito grande, então não é possível trazê-lo para a memória e digitalizá-lo inteiro de uma só vez.
  2. O regex é fornecido pelo usuário, portanto não há estimativa de quão grande uma correspondência poderia ser
  3. A expressão regular pode ter várias linhas, o que torna as correspondências possíveis ainda mais longas, e a varredura por linha pode fazer com que uma correspondência que cruze as linhas seja perdida.
  4. Cada correspondência deve ser retornada com sua posição no arquivo inteiro.
  5. As correspondências devem ser avaliadas lentamente (não há necessidade de encontrar todas as correspondências no arquivo de uma vez)

Como exemplo para 3, este algoritmo

while (not end of file):
  line = file.readNextLine()
  for (each match in regex.find(line)):
    results.append(match)
return results

quebras no caso de

// inline modifier to turn on DOTALL
regex = "(?s)start.*end"
content = "start
end"

porque startentão endseriam apresentados individualmente, quando o ponto pudesse corresponder a um caractere de nova linha.

Minha ideia atual é implementar Iterator<MatchResult>, e ler em a CharBuffercomo uma janela deslizante. java.util.regex.MatcherTambém tem hitEnd(), que pode sinalizar se mais entradas teriam alterado o resultado da última find()operação (se a expressão regular for "foobar" e o correspondente tiver sido avaliado em "foo", hitEnd()retornaria verdadeiro. Se o correspondente tiver sido avaliado em "bar", retornaria falso). Se o buffer estiver cheio e mais entradas puderem encontrar uma correspondência, o tamanho do buffer será dobrado até que uma correspondência seja encontrada. Eu poderia implementar Spliteratorem vez disso, mas não sei se isso é mais ou menos complicado.

Até agora, tenho esta estrutura básica (omitindo o tratamento de exceções por questões de brevidade):

public class RegexStreamIterator implements Iterator<MatchResult> {
  private static final int MIN_BUFFER_SIZE_BYTES = 8192;
  private static final int MAX_BUFFER_EXPANSIONS = 4;
  private static final int MAX_BUFFER_SIZE_BYTES = (int) Math.pow(2, MAX_BUFFER_EXPANSIONS) * MIN_BUFFER_SIZE_BYTES;

  private final Reader reader;
  private final Pattern pattern;

  private int readerIndex = 0;
  private Matcher matcher;
  private CharBuffer buffer = CharBuffer.allocate(MIN_BUFFER_SIZE_BYTES);
  private MatchResult currentMatch;

  public RegexStreamIterator(Reader reader, Pattern pattern) {
    this.reader = reader;
    this.pattern = pattern;
  }

  public boolean hasNext() {
    if (currentMatch != null) return true;
    advance();
    return currentMatch != null;
  }

  public MatchResult next() {
    if (currentMatch == null)
      advance();
    if (currentMatch == null)
      throw new NoSuchElementException();

    MatchResult ret = currentMatch;
    currentMatch = null;
    return ret;
  }

  private void advance() {
    // pseudocode while I'm stuck on actual implementation
    if matcher is null
      fill buffer
      if buffer is null
        return
      matcher = pattern.matcher(buffer)
    
    while not end of file:
      if matcher found result and not matcher.hitEnd() // match found and won't grow or get rejected with more input
        this.currentMatch = match
        advance matcher to next match
        return

      if matcher.hitEnd()
        if no match was found in buffer (matcher start index at 0)
          double buffer size 
            if new size bigger than max size, throw exception
          fill from file 
          reset matcher
        else (part of buffer consumed)
          move remaining buffer to new buffer 
          fill from file
          reset matcher
      else
        clear buffer (resetting size)
        fill from file
        reset matcher
  }
}

Estou muito preso a problemas como o tratamento de nulos e a criação de um loop que possa buscar a próxima correspondência e seja estável entre várias chamadas para advance(). Isso parece ser um problema que já foi resolvido antes. Se bibliotecas comuns como Apache ou Guava tiverem algo que cubra isso, seria fantástico.

java
  • 1 respostas
  • 57 Views
Martin Hope
James Sanders
Asked: 2025-04-17 01:09:53 +0800 CST

Tenho uma imagem que está dentro de um contêiner de classe devido ao tamanho. Quero criar um evento de mouseover para trocar imagens, mas com as mesmas restrições de tamanho.

  • 6

Estou tentando aplicar um evento de mouseover para transformar uma imagem original em uma nova imagem e, em seguida, retornar à imagem original ao remover o mouse. No entanto, os arquivos de imagem originais são muito grandes, então estou usando uma classe de contêiner para exibi-los no tamanho desejado.

O problema é que quando passo o mouse sobre a imagem, ela exibe a nova imagem, mas ela está no tamanho original, em vez de estar dentro das restrições do contêiner.

const imageContainer = document.querySelector('.flex-container');
const image = document.getElementById('bookCover2');
const originalSrc = 'Book_2_Cover.png';
const newSrc = 'Book_2_Back.png';

imageContainer.addEventListener('mouseover', () => {
image.src = newSrc;
});

imageContainer.addEventListener('mouseout', () => {
image.src = originalSrc;
});
javascript
  • 1 respostas
  • 20 Views
Martin Hope
Deepanshu Saini
Asked: 2025-04-17 00:18:42 +0800 CST

O cmdlet do Microsoft Graph PowerShell não está retornando @odata.deltaLink ou @odata.nextLink na consulta delta

  • 5

Estou trabalhando com a consulta delta do Microsoft Graph para que os usuários rastreiem alterações em objetos do usuário.

Quando uso a solicitação HTTP diretamente (por exemplo, via Postman ou Invoke-RestMethod), recebo a resposta esperada, incluindo @odata.deltaLink e/ou @odata.nextLink, como esta:

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users",
  "value": [
    {
      "id": "some-user-id",
      "displayName": "John Doe"
    }
  ],
  "@odata.deltaLink": "https://graph.microsoft.com/v1.0/users/delta?$deltatoken=abc123"
}

No entanto, quando tento executar a mesma consulta delta usando o Microsoft Graph PowerShell SDK (por exemplo, usando Get-MgUserDelta) , recebo uma resposta diretamente, e @odata.deltaLink ou @odata.nextLink está faltando na resposta.

Como posso recuperar @odata.deltaLink e @odata.nextLink ao usar o Microsoft Graph PowerShell SDK?

Isso é o que espero ao executar Get-MgUserDelta

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users",
  "value": [
    {
      "id": "some-user-id",
      "displayName": "John Doe"
    }
  ],
  "@odata.deltaLink": "https://graph.microsoft.com/v1.0/users/delta?$deltatoken=abc123"
}
  • 1 respostas
  • 28 Views
Martin Hope
Sreedharan Surendran
Asked: 2025-04-17 00:17:25 +0800 CST

Como posso dar privilégios EXECUTE a uma função sem dar privilégios às tabelas na função

  • 6

Usuários com privilégios EXECUTE para funções receberão um erro ao tentar executar a função, se não tiverem privilégios nos objetos referenciados na função.

Criei uma função my_function. Dentro dela, seleciono/insiro/atualizo/excluo dados de uma tabela my_table. Em seguida, concedo o privilégio EXECUTE a outro usuário, "user1".

Entretanto, quando o usuário1 tenta executar a função, ela falha com a mensagem "permissão negada para a tabela my_table".

Não quero dar permissão ao usuário user1 para acessar a tabela my_table diretamente. Esse é o propósito de criar a função my_function, pois quero controlar quais dados o user1 pode ver/modificar.

Isso é uma limitação (defeito) do Postgres? Para mim, isso é um grande problema de segurança/privacidade. Existe uma maneira de superar isso? Ou temos que conviver com isso?

Minha versão do Postgres é 15.x

postgresql
  • 1 respostas
  • 38 Views
Martin Hope
Patrick Wright
Asked: 2025-04-16 23:59:18 +0800 CST

Como escrever um modelo com uma política padrão e parâmetros variáveis

  • 7

Estou experimentando escrever uma classe leve de sinais/observadores que tem a seguinte interface (implementação removida para simplificação):

template <typename ... ARGS>
class Signal
{
public:
    void connect(AbstractSlot<ARGS...>& slot);
    void disconnect(AbstractSlot<ARGS...>& slot);
    void emit(const ARGS&...args);

    //...
};

Que é usado, por exemplo, assim:

Signal<> signal1; //A signal with no parameters
Signal<int, int> signal2; //A signal with two int parameters

signal1.emit();
signal2.emit(10, 20);

Quero poder tornar minha classe opcionalmente thread-safe. Pensei em modificar meu modelo para aceitar uma classe de "política de bloqueio" que, por padrão, é "vazia".

struct NoLock
{
    void lock() {}
    void unlock() {}
};

Na minha cabeça, eu gostaria de poder usar o modelo de sinal modificado assim:

Signal<> signal1;
Signal<std::mutex> signal1Locked;
Signal<int, int> signal2;
Signal<int, int, std::mutex> signal2Locked;

O que exigiria que eu escrevesse o modelo assim:

template <typename ... ARGS, typename LockPolicy = NoLock>
class Signal;

Exceto que isso não é C++ válido (e eu entendo o porquê; como o compilador saberia a diferença entre os argumentos policy e variadic).

Minha pergunta é: como posso alcançar o que desejo em uma sintaxe que não seja muito confusa/complexa de usar?

c++
  • 2 respostas
  • 66 Views
Martin Hope
Andrew Mitchell
Asked: 2025-04-16 23:46:08 +0800 CST

Terraform for_each sem suporte de bloco dinâmico

  • 5

Estou tentando escrever um código Terraform que pegue um objeto aninhado e crie recursos. Normalmente, isso seria feito com o bloco dinâmico, mas o recurso em questão não oferece suporte a isso. Alguém tem alguma ideia sobre qual seria a melhor abordagem para lidar com isso?

A configuração ficaria assim:

 dashboards = {
  "Test Dashboards" = {
    folder_name = "Test Folder"
    dashboards = [
      {
        file.          = "test.json"
        overwrite      = true
      },
      {
        file           = "test1.json"
        overwrite      = false
      }
    ]
  }
}

e então na criação de recursos, normalmente seria algo assim:

resource "grafana_dashboard" "dashboards" {
  for_each    = var.dashboards
  folder      = each.value.folder_name
  dynamic "dashboard" {
    for_each = each.value.dashboards
      content {
        config_json    = file("../../dashboards/${dashboards.value["file"]}")
        overwrite      = dashboards.value["overwrite"]
      }
  }
}

Mas o bloco dinâmico não é suportado por esse recurso. A única maneira é não duplicar a configuração, pois ela pode ser compartilhada com vários recursos, se isso fizer sentido.

foreach
  • 2 respostas
  • 31 Views
Prev
Próximo

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve