Skip to content

Instantly share code, notes, and snippets.

View semuserable's full-sized avatar
💭
Looking for remote job opportunities

semuserable

💭
Looking for remote job opportunities
View GitHub Profile
@semuserable
semuserable / Subscribing.cs
Created April 10, 2016 11:51
Rx .NET samples
static void Main()
{
IObservable<int> observable = Enumerable.Range(0, 10).ToObservable();
// Long version
observable.Subscribe(new IntObserver());
// Short version (lambda)
observable.Subscribe(Console.WriteLine)
@semuserable
semuserable / SimpleObservableCreate.cs
Last active April 18, 2016 12:53
Simple methods from Rx made using Observable.Create<T>()
public static class RxExamples
{
// Equal to Observable.Empty<T>()
public static IObservable<T> Empty<T>()
{
return Observable.Create<T>(observer =>
{
observer.OnCompleted();
return Disposable.Empty;
});
[System.Runtime.InteropServices.DllImport("KERNEL32.DLL")]
private static extern int GetSystemDefaultLCID();
private RegionInfo CurrentRegionInfo()
{
var cultureInfo = new CultureInfo(GetSystemDefaultLCID());
return new RegionInfo(cultureInfo);
}
// OR (it's preferable if Vista or higher)
open FSharp.Data
open FSharp.Data.JsonExtensions
open System.IO
open System
module City =
type T = City of string
let Kyiv = City "Киев"
let Kharkiv = City "Харьков"
module FinanceRevised.Core
open FinanceRevised.Types
open MaybeBuilder
open System
open System.IO
open FSharp.Data
open FSharp.Data.JsonExtensions
type AsyncTimer(duration) =
let tickEvent = new Event<_>()
let endEvent = new Event<_>()
[<CLIEvent>]
member this.Tick = tickEvent.Publish
[<CLIEvent>]
member this.End = endEvent.Publish
using System;
using System.Linq;
using System.Text;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
namespace ConsoleRoslyn_1
{
class MyTokenWalker : CSharpSyntaxWalker
// Remove all nuget packages from project
$packages = Get-Package -ProjectName MyProjectName;
foreach($package in $packages) {
Uninstall-Package -ProjectName MyProjectName -Id $package.Id -Force
}
// Remove all nuget packages from all projects from solution
foreach($project in $projects) {
let apply optionF optionStr =
match optionF,optionStr with
| Some f, Some str -> Some (f str)
| _ -> None
let repeat count (str:string) = String.replicate count str
let mul x y = x * y
let optionMul = Option.map mul
let retn x = Some x // official naming for upgrading a value
interface Person {
age: number,
name: string,
say(): string
}
let mike = {
age: 25,
name:"Mike",
say: function() {