Skip to content

Instantly share code, notes, and snippets.

View TGITS's full-sized avatar

TheGeekInTheShell TGITS

View GitHub Profile
import functools
def my_filter(predicate, seq):
def filter_and_aggregate_as_list(accumulator, current_elt):
if predicate(current_elt):
accumulator.append(current_elt)
return accumulator
return functools.reduce(filter_and_aggregate_as_list, seq, [])
@TGITS
TGITS / DisplayRandomAlgorithms.java
Last active February 5, 2022 14:50
Utilisation de RandomGeneratorFactory pour afficher les différents algorithmes de génération de nombres aléatoires disponibles
import java.util.random.RandomGeneratorFactory;
var template = "Algorithm name : %s - group : %s - characteristics : {%s%s%s%s%s%s%s%s stateBits: %d }";
var algorithms = RandomGeneratorFactory.all().map(
factory -> template.formatted(
factory.name(),
factory.group(),
factory.isSplittable() ? " splittable" : "",
factory.isStreamable() ? " streamable" : "",
factory.isJumpable() ? " jumpable" : "",
factory.isArbitrarilyJumpable() ? " arbitrary-jumpable" : "",
@TGITS
TGITS / RandomGenerationExampleScript.java
Last active February 15, 2022 14:17
Script (à exécuter sous JShell) d'exemple de création d'un générateur de nombre aléatoire
//A exécuter sous JShell : /open RandomGenerationExampleScript.java
//Penser à configurer la console en UTF-8 avec chcp 65001 avant de lancer jshell
import java.util.random.RandomGenerator;
import java.util.random.RandomGeneratorFactory;
//Utilisation du générateur par défaut
var randomGeneratorDefault = RandomGenerator.getDefault();
System.out.println("Génération d'une valeur aléatoire booléenne : " + randomGeneratorDefault.nextBoolean());
@TGITS
TGITS / House.java
Created January 22, 2022 12:29
A record to represent some characteristics of a noble House of Westeros
/**
* A record to represent some characteristics of a noble House of Westeros
* */
public record House(String name, String seat, String sigil, String familyWords) {
}
@TGITS
TGITS / RecordExampleScript_1.java
Created January 22, 2022 15:40
Un premier exemple de record avec utilisation de la méthode toString et d'un accesseur
//A exécuter sous JShell : /open RecordExampleScript_1.java
public record House(String name, String seat, String sigil, String familyWords) {
}
var house = new House("Stark", "Winterfell", "A Gray Direwolf", "Winter is coming");
System.out.println(house); // Utilisation implicte de la méthode toString
System.out.println(house.seat()); // Utilisation d'un accesseur
@TGITS
TGITS / RecordExampleScript_2.java
Last active January 22, 2022 15:51
Exemple de fonctionnement des méthodes equals et hashCode des records
//A exécuter sous JShell : /open RecordExampleScript_2.java
public record House(String name, String seat, String sigil, String familyWords) {
}
House house1 = new House("Stark", "Winterfell", "A Gray Direwolf", "Winter is coming");
House house2 = new House("Stark", "Winterfell", "A Gray Direwolf", "Winter is coming");
house1 == house2; // false - 2 références distinctes
house1.equals(house2); // true - comparaison basée sur le contenu
house1.hashCode() == house2.hashCode(); // true
@TGITS
TGITS / Pair.java
Created January 22, 2022 16:02
Un exemple de record avec des types paramétrés et une méthode statique
public record Pair<U,V>(U first, V second) {
public static <U,V>Pair<U,V> of(U first, V second) {
return new Pair<>(first,second);
}
}
@TGITS
TGITS / HouseStarkExample.java
Created January 23, 2022 13:39
Exempel de bloc de texte représentant du JSON en Java
//A utiliser sous JShell : /open HouseStarkExample.java
var houseStark = """
{
"name": "Stark",
"main_seat": "Winterfell",
"ancestral_seat": "Winterfell",
"sigil": "A Gray Direwolf",
"family_words": "Winter is coming"
}""";
@TGITS
TGITS / TextBlockEndMarkerExample.java
Created January 23, 2022 14:02
Exemple montrant l'influence de la position des double guillemets marquant la fin du bloc de texte
//A utiliser sous JShell : /open TextBlockEndMarkerExample.java
var houseStark_1 = """
{
"name": "Stark",
"main_seat": "Winterfell",
"ancestral_seat": "Winterfell",
"sigil": "A Gray Direwolf",
"family_words": "Winter is coming"
}
""";
@TGITS
TGITS / HouseStarkExampleWithEndlineSpaces.java
Created January 23, 2022 14:10
Exemple de bloc de texte avec des espaces en fin de ligne
//A utiliser sous JShell : /open HouseStarkExampleWithEndlineSpaces.java
var houseStark = """
{
"name": "Stark",
"main_seat": "Winterfell",
"ancestral_seat": "Winterfell",
"sigil": "A Gray Direwolf",
"family_words": "Winter is coming"
}""";