Skip to content

Instantly share code, notes, and snippets.

View gist:4821441c7faed21b0fde
type System.Net.WebClient with
member inline internal this.DownloadWithWebClient(addHandler, removeHandler, extract, start) =
let downloadAsync =
Async.FromContinuations (fun (cont, econt, ccont) ->
let userToken = new obj()
let rec handler (_: obj) (args: 'T :> ComponentModel.AsyncCompletedEventArgs) =
if userToken = args.UserState then
removeHandler handle
if args.Cancelled then
ccont (new OperationCanceledException())
View gist:174ead2e49c87e104f2d
function foo(v) {
var x;
var y;
function bar() {
return x + y;
}
if (v) {
x = 5;
return bar();
View local.fs
let rec takeFreshConsTail cons n l =
match l with
| [] ->
if n <> 0 then failwith "insufficient length"
setFreshConsTail cons []
| x::xs ->
if n > 0 then
let cons2 = freshConsNoTail x
setFreshConsTail cons cons2
takeFreshConsTail cons2 (n - 1) xs
View local.fs
let rec takeWhileFreshConsTail cons p l =
match l with
| [] ->
setFreshConsTail cons []
| x::xs ->
if p x then
let cons2 = freshConsNoTail x
setFreshConsTail cons cons2
takeWhileFreshConsTail cons2 p xs
else
View list.fs
[<CompiledName("SplitAt")>]
let splitAt (n: int) (list: 'T list) = Microsoft.FSharp.Primitives.Basics.List.splitAt n list
View Guess.cs
using System;
interface IContainer
{
object Obj { set; }
}
struct P : IContainer
{
public object Obj { set { this.o = value; } }
object o;
View gist:8031551
type A private() =
[<DefaultValue>]
val mutable x: string
new(x : string) =
if x = null then nullArg "x"
A()
then
printfn "x=%s" x
type B(x : string) =
View gist:8031537
type A() =
[<DefaultValue>]
val mutable x: string
new(x : string) =
if x = null then nullArg "x"
A()
then
printfn "x=%s" x
type B(x : string) =
View gist:8030771
type A =
val x: string
new(x : string) =
if x = null then nullArg "x"
{x = x}
then
printfn "x=%s" x