This gist is part of a blog post. Check it out at:
http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer
This gist is part of a blog post. Check it out at:
http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer
var parser = document.createElement('a'); | |
parser.href = "http://example.com:3000/pathname/?search=test#hash"; | |
parser.protocol; // => "http:" | |
parser.hostname; // => "example.com" | |
parser.port; // => "3000" | |
parser.pathname; // => "/pathname/" | |
parser.search; // => "?search=test" | |
parser.hash; // => "#hash" | |
parser.host; // => "example.com:3000" |
<?xml version="1.0" encoding="utf-8"?> | |
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |
<PropertyGroup> | |
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">$(MSBuildProjectDirectory)\..\</SolutionDir> | |
<!-- Windows specific commands --> | |
<PackagesConfig Condition=" '$(OS)' == 'Windows_NT'">$([System.IO.Path]::Combine($(ProjectDir), "packages.config"))</PackagesConfig> | |
<PackagesDir Condition=" '$(OS)' == 'Windows_NT'">$([System.IO.Path]::Combine($(SolutionDir), "packages"))</PackagesDir> | |
<!-- We need to launch nuget.exe with the mono command if we're not on windows --> |
Just found out that VB.NET can infer function types correctly. I.e. this won't work in C#: | |
var withMemoryStream = | |
(Action<MemoryStream> f) => () => { | |
using (var ms = new MemoryStream()) | |
f(ms); | |
}; | |
("Cannot assign lambda expression to implicitly-typed local variable", because it can't tell a Func<T> from an Expression<Func<T>>). | |
But the exact same code in VB.NET does work: |
(* F# lacks proper support for higher-kinded abstraction such as ML | |
functors or Haskell typeclasses. In particular it makes it seemingly | |
impossible to define functions that work for every type constructor. | |
The code below demonstrates that this functionality can be partially | |
recovered by using inline functions with static member constraints. | |
The approach requires explicitly passing typeclass instance values. | |
Error messages and derived types are horrible. Nonetheless, there is | |
some type safety - if the typeclass instances have been defined right, | |
type-unsafe code will be rejected by the typechecker, albeit with a | |
hairy message. Another disadvantage is the need to invent operators. *) |
# A bunch of the stuff above relies on this, especially the aliases. | |
[user] | |
# you probably want to change this bit. | |
name = isaacs | |
email = [email protected] | |
signingkey = 0x6C481CF6 | |
[alias] | |
ci = commit | |
st = status | |
br = branch |
[TestFixture] | |
public class SpecificationFixture | |
{ | |
[Test, TestCaseSource("GetSpecificationTestCases")] | |
public void Verify(SpecificationToRun spec) | |
{ | |
var runner = new SpecificationRunner(); | |
RunResult result = runner.RunSpecifciation(spec); | |
if (result.Passed) |
using System; | |
using System.IO; | |
using MsgPack.Serialization; | |
using ZeroMQ_MessagePack_Testbed.Models; | |
using ZMQ; | |
namespace ZeroMQ_MessagePack_Testbed | |
{ | |
class Program | |
{ |
Have you ever had to write code that made a complex series of succesive modifications to a single piece of mutable state? (Almost certainly yes.)
Did you ever wish you could make the compiler tell you if a particular operation on the state was illegal at a given point in the modifications? (If you're a fan of static typing, probably yes.)
If that's the case, the indexed state monad can help!
Motivation
namespace PKI | |
{ | |
class Results : IEquatable<Results> | |
{ | |
internal static readonly Results NotFound = new Results | |
{ | |
Directory = "", | |
KeyName = "" | |
}; |