Exemples Catnip
Collection d'exemples pratiques pour apprendre et expérimenter avec Catnip.
Bases (basics/)
Exemples fondamentaux pour débuter :
01_born_to_segfault.cat- Premier programme, debug et affichage02_loops.cat- Boucles for et whilerepl_multiline_demo.txt- Utilisation du REPL en mode multiline
Fonctions (functions/)
Fonctions, lambdas et closures :
01_functions.cat- Définition de fonctions, paramètres, defaults02_lambdas.cat- Fonctions anonymes, lambdas inline03_closures_and_higher_order.cat- Closures, fonctions de fonctions, composition
Pattern Matching (pattern-matching/)
Matching et destructuration :
01_pattern_matching.cat- match/case, patterns littéraux, variables, guards, OR patterns
Flux de Contrôle (control-flow/)
Structures de contrôle avancées :
01_break_example.cat- Sortie anticipée de boucle02_continue_example.cat- Passage à l'itération suivante03_break_continue_combined.cat- Combinaison des deux
Avancé (advanced/)
Fonctionnalités avancées :
01_advanced_techniques.cat- Techniques avancées combinées02_blocks_and_expressions.cat- Blocs comme expressions03_data_structures.cat- Manipulation de structures complexes04_literals_and_variadic.cat- Littéraux et fonctions variadiques05_pragma_features.cat- Pragmas et directives06_fstrings.cat- Formatage de chaînes07_binary_search.cat- Algorithme de recherche binaire08_turing_completeness.cat- Démonstration de Turing-complétude
Broadcasting (broadcast/)
Opérations vectorielles sur collections ; notation A.[op M] où A est la liste de gauche et M une liste ou un scalaire. Opérations courantes : arithmétiques (+, -, *, /, %, //, **), comparaisons (==, !=, <, <=, >, >=), logiques (and, or, not), bitwise (&, |, ^, <<, >>) et call pour appliquer une fonction.
01_scalar_broadcasting.cat- Broadcasting sur scalaire02_basic_broadcasting.cat- SyntaxeA.[op M], bases03_math_operations.cat- Opérations mathématiques vectorielles04_comparisons.cat- Comparaisons et filtrage05_boolean_logic.cat- Logique booléenne distribuée06_nested_structures.cat- Broadcasting sur structures imbriquées07_real_world.cat- Cas d'usage réalistesbench_broadcast.py- Benchmarks de performanceohlcv_helpers.py- Helpers pour données financières
Chargement de Modules (module-loading/)
Intégration avec Python :
01_demo.cat- Mode namespace par défaut02_demo_with_as.cat- Namespace personnalisé03_demo_with_inject.cat- Injection directe04_app_script.cat- Script utilisant l'APIhost_module_example.py- Module Python exempleapp_api.py- API d'application simuléecustom_functions.py- Fonctions personnaliséessimple_extension.py- Extension simple
Intégration DSL (embedding/)
Catnip comme moteur DSL embarqué dans une application Python :
dataframe_dsl.py- DSL pour manipuler des DataFrames pandas
Performance (performance/)
Cache et optimisations :
cache_demo.py- Démonstration du système de cachecache_memory_example.py- Cache en mémoirecache_disk_example.py- Cache sur disquecache_redis_example.py- Cache Rediscache_comparison.py- Comparaison des backendsfunction_cache_build_script.py- Script de build avec cachefunction_cache_dependencies.py- Gestion des dépendancesfunction_cache_python_hooks.py- Hooks Python pour cache
Exécuter les Exemples
# Exemple simple
catnip docs/examples/basics/01_born_to_segfault.cat
# Avec module Python
catnip -f ./docs/examples/module-loading/host_module_example.py:host docs/examples/module-loading/02_demo_with_as.cat
# Mode verbeux
catnip -v docs/examples/functions/01_functions.cat
# REPL pour expérimenter
catnip