Skip to content

Instantly share code, notes, and snippets.

View samueltardieu's full-sized avatar

Samuel Tardieu samueltardieu

View GitHub Profile
@samueltardieu
samueltardieu / Test.scala
Created June 17, 2013 15:38
Scala seems to always prefer value over call by name: `foo(true)` returns "foo1" and is not ambiguous. Why?
object Test {
def foo(t: Boolean) = "foo1"
def foo(t: => Boolean) = "foo2"
}
@samueltardieu
samueltardieu / Factor.hs
Created June 23, 2013 08:13
Demo Factor basis for the non-classical paradigms and language course
module Factor where
import Control.Monad.State
-- We can put integer literals or quotations on the stack
data Stackable = IntLiteral Int
| FQuotation (Factor ())
-- Shortcut name
type Stack = [Stackable]
@samueltardieu
samueltardieu / gist:7946839
Created December 13, 2013 16:24
Freebox Companion pour Android
D/FbxCompMain( 7542): launching activity for 'Téléchargements'
I/ActivityManager(  850): START u0 {cmp=fr.freebox.android.compagnon/.downloadmanager.FbxDownloadListActivity (has extras)} from pid 7542
D/FbxDownloadListActivity( 7542): called onCreate
D/FbxDownloadListActivity( 7542): tab selected
D/FbxDownloadListFragment( 7542): called onCreate
D/FbxDownloadListActivity( 7542): called onStart
D/FbxDownloadListActivity( 7542): called onResume
D/FbxHttpClientTask( 7542): got 403, application/json; charset=utf-8 on http://88.160.xxx.yyy:81/api/v1/connection/config
D/FbxHttpClientTask( 7542): called doInBackground on: http://88.160.xxx.yyy:81/api/v1/fs/ls//?countSubFolder=1&removeHidden=1
@samueltardieu
samueltardieu / injected-singleton.scala
Created March 11, 2011 10:18
Example of Scala injection of a singleton
// StopWatch class
abstract class StopWatch {
def giveTime: Time
}
// Class is declared abstract as it is lacking a StopWatch which will be later injected.
// Note that we could have defined a default value here and thus made the class concrete.
abstract class FooBar {
@samueltardieu
samueltardieu / primes.py
Created November 26, 2010 22:46
Prime numbers manipulation
"""Prime number generation and number factorization."""
import bisect, itertools, random, sys
_primes = [2]
_miller_rabin_limit = 48611 # 5000th prime
_miller_rabin_security = 7
def modpow (a, b, c):
fn identity<T>(x: &mut T) -> &mut T {
println!("In identity");
x
}
fn main() {
let mut x = 0i32;
println!("Before assignment");
*identity(&mut x) = { println!("Evaluating 42"); 42 };
println!("After assignment");
use tokio::time::Duration;
async fn value<T>(x: T, duration: Duration) -> T {
println!("Before sleeping in value");
tokio::time::sleep(duration).await;
println!("After sleeping in value");
x
}
async fn identity<T>(x: &mut T) -> &mut T {