Skip to content

Instantly share code, notes, and snippets.

@jeffque
jeffque / peano.hs
Created August 29, 2024 01:40
Aritmética de Peano
data Nat = Zero | Suc Nat
inc :: Nat -> Nat
inc x = Suc x
showNat :: Nat -> String
showNat Zero = "Zero"
showNat (Suc v) = "Suc " ++ (show v)
type BinNat = (Nat -> Nat -> Nat)
@jeffque
jeffque / ServeInputStream.java
Created August 23, 2024 12:48
Pequena alternativa para responder como input stream uma coleção de elementos
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.function.Function;
public class ServeInputStream<T> extends InputStream {
private final Iterator<T> iterator;
private final Function<T, byte[]> serializer;
@jeffque
jeffque / mapeamentoHaskell.hs
Last active August 23, 2024 09:58
Uma demonstração da estrutura de dados "mapa"
data Resultado = Vazio | Valor Integer
type Mapeamento = (Integer -> Resultado)
showResultado :: Resultado -> String
showResultado Vazio = "Vazio"
showResultado (Valor v) = "Valor " ++ (show v)
instance Show Resultado where
show = showResultado
<html>
<head>
<script defer="" src="https://cdn.jsdelivr.net/npm/katex@0.13.13/dist/katex.min.js" integrity="sha384-pK1WpvzWVBQiP0/GjnvRxV4mOb0oxFuyRxJlk6vVw146n3egcN5C925NCP7a7BY8" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.13/dist/katex.min.css" integrity="sha384-RZU/ijkSsFbcmivfdRBQDtwuwVqK7GMOw6IMvKyeWL2K5UAlyp6WonmB8m7Jd0Hn" crossorigin="anonymous">
</head>
<body>
<p><span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi mathvariant="normal"></mi><mi>i</mi><mo></mo><mrow><mo fence="true">(</mo><mn>0</mn><mo separator="true">,</mo><mrow><mo fence="true"></mo><mi>P</mi><mo fence="true"></mo></mrow><mo fence="true">]</mo></mrow><mo>:</mo><msub><mi>p</mi><mrow><mi>i</mi><mo></mo><mn>1</mn></mrow></msub><mi mathvariant="normal">.</mi><msub><mi>v</mi><mrow><mi>i</mi><mi>n</mi></mrow></msub><mo>=</mo><msub><mi>p</mi><mi>i</mi></msub><mi mathvari
@jeffque
jeffque / questions-answers.md
Last active July 8, 2024 19:00 — forked from Met4tron/questions.md
Java na visão de quem está reaprendendo

Persistence

  • JPA ou Hibernate?
  • Existe um mundo onde JDBC puro é mais utilizado?
    • Eu uso bastante JDBC puro. Normalmente se usa quando se precisa falar diretamente com o banco, não HQL ou coisa equivalente. Existem tretas com spring-jdbc que o jdbc puro trata bem. Não cheguei a usar algo mais específico do spring para stream de dados e coisas mais pesadas.
  • Existe algum Query Builder no mundo Java?
  • Muitos. Como exemplo, jOOQ.
@jeffque
jeffque / exercício-java.md
Last active July 3, 2024 14:05
Exercício em Java para trabalhar modelagem de dados

Um pequeno exercício Java para trabalhar modelagem de dados.

A fila

Você precisa saber se o SLA de atendimento está sendo atendido e, se não está, quantos pacientes na fila foram atendidos depois do SLA.

Você receberá um único array de EVENTOS, ordenado pela ordem cornológica de acontecimento. Cada evento contém as seguintes informações:

@jeffque
jeffque / SegundoMenor.java
Last active May 24, 2023 11:06
Dado um array de elementos, descubra o menor deles.
import java.util.Arrays;
import java.util.stream.Collector;
class SegundoMenor {
static class AB {
int a, b;
boolean primeiro;
boolean segundo;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class LongestCommonPrefix {
static final Holder FIRST_HOLDER = new Holder("", 0) {
@Override
Holder acc(String another) {
return another.isEmpty()? EMPTY_HOLDER: new Holder(another);
}
@Override
import java.time.Instant;
import static java.time.temporal.ChronoUnit.*;
class Domingos {
public static void main(String... args) {
Instant x1 = Instant.now();
int deltaMes[] = {
31, // jan 1
28, // fev 1
31, // mar 1
@jeffque
jeffque / DesafioSemLoop.java
Last active September 27, 2022 16:43
Resolva a soma sem usar laços. Baseado no desafio do Zan
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class DesafioSemLoop {
public static BigDecimal totalCompras(List<Compra> compras) {
//TODO implementar a soma sem usar loops while, for, do-while...