Skip to content

Instantly share code, notes, and snippets.

-- * Preamble
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
-- * Preamble
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TemplateHaskell #-}
module Main where
import Control.Lens
import Control.Monad.State.Lazy (State (..), get, runState)
---------------------------------------------------- Data Types
type Message = String
data Product = Product { _name :: String
, _price :: Int
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE TypeOperators #-}
module Data.HyperRelation.Internal.Question1 where
import Data.Functor.Identity
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
// Oscilloscope
// Input defined by ANALOG_IN
// SIG_OUT true puts a 2kHz wave on DIGITAL_OUT for testing.

#define ANALOG_IN 0
#define DIGITAL_OUT 13
bool SIG_OUT = true;

void setup() {
#include<iostream>
#include<cmath>
using namespace std;
// Codice che definisce nel main un array, prende gli elementi di input, e
// chiama una funzione media esterna. Nota che media prende un puntatore ad
// intero (che e' il primo elemento dell'array), e la lunghezza.
double media(int * m, int l)
#include<iostream>
#include<cmath>
using namespace std;
// Codice che definisce la struct che rappresenta un numero complesso. Ricordati
// che si entra nei campi con la sintassi Variabile.Campo, quindi per esempio
// una volta definito un complesso z puoi prendere la parte reale con z.re
struct Complesso
#include<iostream>
using namespace std;
void raddoppiaByReference(int &m)
{
m=2*m;
}
int raddoppiaByValue(int m)
{
{-# LANGUAGE ViewPatterns #-}
import Control.Monad
import Control.Monad.Trans.State.Strict
import Data.Sequence
import Pipes
import Pipes.Lift
import qualified Pipes.Prelude as P
import Prelude hiding (length)