FPish.net - All blog entries by Ramon SnirAll blog entries shared on FPish.net by Ramon Snir.uuid:52ddffa9-7c30-4b93-bb2d-4724091e20e9;id=12362024-03-29T07:16:35Zhttp://ramon.org.il/wp/?p=100GitStack – a simple Git server for Windows2013-01-15T10:01:00Z2024-03-29T07:16:35ZI have recently been in need for a good Git server stack for my degree’s workshop project. For various reasons, the whole system has to run on Windows machines. While I was sure I could setup the complete system on my own, I was too busy to bother, with several exams coming up in February. [...]http://ramon.org.il/wp/?p=86Text-based Macro System for F#2011-12-03T14:54:00Z2024-03-29T07:16:35ZOne feature I’ve seen repeatedly people wishing is a macro system, so I went ahead and tweaked the compiler to add a text-based macro system. I’m warning here and now: this is only a prototype, it is imperfect and definitely incomplete. The current version uses in-place text replacement on compilation time, using precompiled macros (functions [...]http://www.intellifactory.com/blogs/ramon.snir/2011/9/9/Announcing-Formlets-for-jQuery-Mobile.articleAnnouncing Formlets for jQuery Mobile2011-09-09T11:30:00Z2024-03-29T07:16:35ZThe WebSharper Extensions for Formlets for jQuery Mobile give you the power of jQuery Mobile combined with the succinctness of formlets.http://ramon.org.il/wp/?p=67The Lazync Computation Expressions2011-08-07T17:31:00Z2024-03-29T07:16:35ZThere is lately quite a lot of fuss over C# 5.0, caused by the new async features. The C# async feature is based on (or was inspired by) the F#’s Async computation expression, which I will now discuss a bit (and then present my improvement). Usually, async code works in to ways – sequential (wait [...]http://ramon.org.il/wp/?p=45Taking Computation Expressions one step further2011-04-02T10:35:00Z2024-03-29T07:16:35ZIn this article, I will present an extension to the F# compiler (I used November 2010 CTP from the F# PowerPack site). I was inspired by two things. The first was an old attempt to create a computation builder for XML/HTML objects, which wasn’t very successful because of the lack of options in computation expressions [...]http://ramon.org.il/wp/?p=33Implementing Haskell classes in F#2010-10-23T09:31:00Z2024-03-29T07:16:35ZHaskell got a nice system of classes. Though the name reminds us of the OOP term, these “classes” are very different in their use. Here is an example for people who are not familiar with Haskell classes: Ideally, our F# code would look like: Without editing the compiler (I am going to consider writing an [...]http://ramon.org.il/wp/?p=22Being responsible when using tail recursion and exceptions2010-10-09T19:04:00Z2024-03-29T07:16:35ZOne very popular habit in F# is tail recursion. Tail recursion allows you to recurse without worrying about stack overflow. But there is a very dangerous problem – infinite recursion. Now, let’s say we have a function which doesn’t have a name which indicates it might fail (with StackOverflowException, InfiniteRecursionException, ArgumentOutOfRangeException etc.). An innocent reader [...]http://ramon.org.il/wp/?p=18The IO Monad for F#2010-10-09T18:43:00Z2024-03-29T07:16:35ZIf you have any experience in Haskell, you know the IO monad. Some people think it just makes things ugly – but I think it is good, since we are functional programming and we should know when we are using an impure function. What we will do is to define an IO<’T> type and an [...]http://ramon.org.il/wp/?p=6F# and WPF/XAML2010-10-09T17:54:00Z2024-03-29T07:16:35ZF# is a great language, but its support is a bit limited. For example, you can make a WPF project in F# but you cannot use XAML. In this post I will demonstrate how to create a simple calculator using F#, WPF and XAML. I did not compare the efficiency to the C# version, but I’m quite [...]