This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Monad = | |
type M<'T,'B when 'B :> Sig<'B>> = | |
interface end | |
and Sig<'B when 'B :> Sig<'B>> = | |
abstract member Return<'X> : 'X -> M<'X,'B> | |
abstract member Bind<'X,'Y> : | |
M<'X,'B> -> ('X -> M<'Y,'B>) -> M<'Y,'B> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class functional_point y = | |
object | |
val x = y | |
method get_x = x | |
method move d = {< x = x + d >} | |
end | |
#let p = new functional_point 7;; | |
val p : functional_point = <obj> | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let MapReduce (map: 'T1 -> 'T2) | |
(reduce: 'T2 -> 'T2 -> 'T2) | |
(zero: 'T2) | |
(inputs: seq<'T1>) = | |
let ( >>= ) x f = async.Bind(x, f) | |
Async.FromContinuations <| fun (ok, no, _) -> | |
let n = Seq.length inputs | |
let reducer = | |
MailboxProcessor.Start <| fun inbox -> | |
let rec loop n s = |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type View<'T1,'T2> = | |
{ | |
Get : 'T1 -> option<'T2> | |
Set : 'T2 -> 'T1 -> 'T1 | |
} | |
static member Find() = | |
let t1 = typeof<'T1> | |
let t2 = typeof<'T2> | |
if R.IsRecord t1 then |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
open System.Collections.Generic | |
[<Sealed>] | |
type Channel<'T>() = | |
let sync = obj () | |
let readers = Queue<Future<_>>() | |
let writers = Queue<_>() | |
member this.CanRead : bool = | |
lock sync <| fun () -> writers.Count > 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Downloads a file from a given URL to the current directory. | |
function wget($url) | |
{ | |
$path = $url.Substring($url.LastIndexOf('/') + 1) | |
$dir = pwd | |
$location = [System.IO.Path]::Combine($dir, $path) | |
$client = new-object System.Net.WebClient | |
$client.DownloadFile($url, $location); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Specialization = | |
type ITyped<'T1,'T2> = | |
abstract member Run<'T3> : 'T1 -> 'T2 | |
type private Function<'T1,'T2> = delegate of 'T1 -> 'T2 | |
let Specialize<'T1,'T2> (algorithm: ITyped<'T1,'T2>) = | |
let aT = typeof<ITyped<'T1,'T2>> | |
let def = aT.GetMethod("Run").GetGenericMethodDefinition() | |
let dT = typeof<Function<'T1,'T2>> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let rec fac = function | |
| 0 -> 1 | |
| n -> fac (n - 1) * n |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def readFile(path): | |
f = open(path, 'r') | |
r = map(lambda x: x.strip(), f.readlines()) | |
f.close() | |
return r | |
animals = readFile('animals.txt') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Require Import Coq.Lists.List. | |
(** The only list of length zero is the empty list. *) | |
Lemma length_zero : forall (a : Type) (x : list a), | |
length x = 0 <-> x = nil. | |
Proof. | |
intros; split; intro. | |
induction x; auto; discriminate. | |
rewrite H; compute; auto. | |
Qed. |
OlderNewer