Posez n’importe quelle question sur les cours, conférences, exercices, recherches, actualités, etc. de l’EPFL ou essayez les exemples de questions ci-dessous.
AVERTISSEMENT : Le chatbot Graph n'est pas programmé pour fournir des réponses explicites ou catégoriques à vos questions. Il transforme plutôt vos questions en demandes API qui sont distribuées aux différents services informatiques officiellement administrés par l'EPFL. Son but est uniquement de collecter et de recommander des références pertinentes à des contenus que vous pouvez explorer pour vous aider à répondre à vos questions.
Nim (anciennement nommé Nimrod) est un langage de programmation impératif, multi-paradigme et compilé imaginé et développé par Andreas Rumpf. Il est prévu pour être efficace, expressif et élégant. Il supporte la métaprogrammation, la programmation fonctionnelle, procédurale et orientée objet. Initialement, le compilateur Nim était écrit en Pascal. En 2008, une version du compilateur écrite en Nim a été réalisée. Le compilateur est open source et développé par un groupe de volontaires en plus d'Andreas Rumpf. Le compilateur génère un code C optimisé. Les exemples suivants sont valides sur la version 0.10.2 de Nim. echo "Hello World!" proc reverse(s: string): string = result = "" # variable « result » implicite for i in countdown(high(s), 0): result.add s[i] var str1 = "Reverse This!" echo "Reversed: ", reverse(str1) Cet exemple présente quelques-unes des caractéristiques de Nim. L'une des plus exotiques est la variable implicite result : chaque procédure en Nim qui possède un type de retour a une variable de retour nommée result qui représente la variable qui sera retournée. Dans la boucle for, la fonction countDown est un itérateur. import std/strformat template genType(TypeName, id: expr, fieldName: expr, fieldType: typedesc) = type TypeName = object id: string fieldName: fieldType genType(Personne, nom, age, int) var personne1 = Personne("Jean", age: 45) echo fmt("{personne1.nom} a {personne1.age} ans.") # "Jean a 45 ans." var personne2 = Personne("Rose", age: 46) echo fmt("{personne2.nom} a {personne2.age} ans.") # "Rose a 46 ans." C'est un exemple de métaprogrammation en Nim utilisant les modèles (templates). genType est appelé à la compilation et le type Personne est créé et défini en tant qu'objet contenant deux champs (un champ nom, utilisé comme identifiant de type chaîne implicite, et un second champ age de type dynamique); ce type d'objet est alors utilisé pour déclarer une variable nommée personne1 et y stocker une nouvelle instance de ce type, avant d'en afficher le contenu, et à nouveau pour déclarer une seconde variable.
[2]Paolo Prandoni, [3]LCAV, EPFL
This notebook shows a simple way to process audio files (in WAV format)
in a block-by-block fashion; this is useful in two cases
1. when you want to process a data stream in real time but you can
accept a small processing delay; in this case a buffered approach
can yield computational gains
2. when you need to process a large file that does not fit entirely
into [2]Paolo Prandoni, [3]LCAV, EPFL
In this notebook we will build a dual-tone multi-frequency decoder
based on the short-time Fourier transform.
In [1]:
[2]Paolo Prandoni, [3]LCAV, EPFL
The Karplus-Strong algorithm is a simple method to generate synthetic
sounds with arbitrary pitch. In this notebook we will explore a few
variations of the method to illustrate some basic notions of
discrete-time signal processing.
In [1]:
%matplotlib inline
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import IPython
In [2]:
plt.rcParams["figure.figsize"] [2]Paolo Prandoni, [3]LCAV, EPFL
The Parks-McClellan (PM) algorithm is a clever application of advanced
polynomial fitting techniques to the problem of FIR filter design. In
this notebook we will explore the key ideas behind the method by
considering the design of a simple Type-I lowpass filter.
NOTE: This notebook uses interactive widgets. If the interactive
controls do not work or show up, please fo