Posts
  • Code Monkey Have Fun

    TinyRPN Calculator

    • 1 Comments
    It’s fun dorking around with the HP 41CX emulator on the iPhone. It’s a near-perfect rendition. I forgot how much I loved RPN calculators. The 48GX looks even more interesting with Reverse Polish Lisp but I haven’t figured out how to use it yet. The 41CX...
  • Code Monkey Have Fun

    Language vs. Library

    • 0 Comments
    [Part 9 of the FScheme series ] Primitives Perhaps this post should have gone along with the one about macros and how Lisp is a “programmable programming language.” The common tension in any language or runtime design is how much to...
  • Code Monkey Have Fun

    Rinse and Recurse

    • 0 Comments
    [Part 4 of the FScheme series ] Recursive ‘let’ Normal ‘let’ can’t be used to bind names to recursive expressions (ones referring back to the names) because the expressions end up being evaluated in the calling environment...
  • Code Monkey Have Fun

    If you can’t beat ‘em, join ‘em

    • 2 Comments
    I’ve had fun making the little DCPU emulator (past couple of posts: 1 , 2 ), but sadly, I’ve had no time to make a Forth for it. But hey, Matt Hellige has already done it ! I just took his GoForth and got it up and going. Just grab the image from here...
  • Code Monkey Have Fun

    Oh, The Humanity!

    • 0 Comments
    [Part 8 of the FScheme series ] 'set', 'begin', 'define' Here we implement chapters 10 and 11 of Bill Hails’ book . We’re about to do something hideous and horrible to the language (and to our interpreter). We’re about to add assignment...
  • Code Monkey Have Fun

    What ‘letrec’ Can’t Do

    • 0 Comments
    [Part 5 of the FScheme series ] In this series I’m glossing over all the gory details. You really should read Bill Hails’ book ! Simultaneous 'let' We just added ‘letrec’ to solve the issue of bindings referring back to...
  • Code Monkey Have Fun

    Colemak

    • 6 Comments
    I switched to Colemak a couple of years ago. I love it. Never going back. Not really any faster than QWERTY, but so much more comfortable. One issue though is whenever I jump on someone else's machine or remote into some server. I want to switch...
  • Code Monkey Have Fun

    Ape - New Toy Language

    • 2 Comments
    I read “ Thinking Fourth ” and also played with Joy and Cat some time ago, but honestly I had written them off as “toy” languages. Recently I’ve had renewed interest in concatenative languages after watching Slava Pestov’s...
  • Code Monkey Have Fun

    Monadic Piles of Coconuts

    • 0 Comments
    After reading the “coconut” problem over on my friend’s blog , I thought it would be fun to solve it with a silly brute force approach. First, go read his post and then come back here. let take n = let m = n - 1 // give one to...
  • Code Monkey Have Fun

    Towers of Hanoi

    • 0 Comments
    A friend of mine is starting a pretty fun looking math blog . His first post is on Towers of Hanoi . I'm sure he'll tackle it with some slick mathematics, but my usual M.O. is to convert everything to code. I remember this "Hello Recursive World" from...
  • Code Monkey Have Fun

    Babbage’s Difference Engine

    • 0 Comments
    ";" galleryimg="no"> Babbage's Difference Engine is pretty fascinating. I had wanted to go see the one on display at the Computer History Museum in Mountain View, but now Nathan Myhrvold has the thing back in his living room! Maybe I’ll build...
  • Code Monkey Have Fun

    Speech Grammars in F#

    • 0 Comments
    People say that Vim keys are a grammar for talking to your editor and that's exactly what they are. One weekend some time back I had fun making VimSpeak to see how well mapping English words to Vim keys would work. It turned out quite nice and some pieces...
  • Code Monkey Have Fun

    Ants

    • 0 Comments
    Gram's blog has been pretty fun to follow. Like with Project Euler , I constantly want to implement each thing he talks about (e.g. Monadic Coconuts , Towers of Hanoi ). Here now is " The Wondering Ant ": open System.Drawing open System.Windows...
  • Code Monkey Have Fun

    XSLT: A Pure Functional Language

    • 0 Comments
    Some years ago now, I had the pleasure of working with a great team building a very elegant publishing and rendering system for MSN. This was one the best times I’ve had at Microsoft. It was a revolutionary system for the time [1] based on transformation...
  • Code Monkey Have Fun

    Turtle Soup

    • 0 Comments
    I've been reading Seymour Papert 's Mindstorms book about Logo ; very interesting! I'm just dying to add Turtle Graphics to my little toy language from last post (BTW, a friend suggested I call it "Ape" and I think I will!). Logo with a twist What...
  • Code Monkey Have Fun

    Cryptarithm

    • 1 Comments
    A recent post to the Puzzles and Logic Problems alias at work: The problem below is an example of a cryptarithm – a basic math problem made more difficult by obscuring each digit with a letter or other symbol. B A R...
  • Code Monkey Have Fun

    Sweeping Mines... Functionally

    • 0 Comments
    Mr. GeekRaver and I were walking between buildings and, for some reason, talking about how silly it is that good ol’ Minesweeper was “glossed up” for Vista. He said he had written it for DOS in some tiny amount of C code ( http://www.bradygirl.com/Work...
  • Code Monkey Have Fun

    Streams

    • 0 Comments
    These SICP lectures are great I tell ya! The two lectures on Streams (6a/6b) talk about implementing things with lazy lists. His examples are in Scheme but here’s my translation to C# using some of the new features in 3.0. For example, here is a lazy...
  • Code Monkey Have Fun

    Project Euler Problem #7

    • 0 Comments
    Find the 10001st prime let naturals = Seq.unfold ( fun i -> Some(i, i + 1 )) let primes = naturals 2 |> Seq.filter ( fun n -> seq { 2.. int (sqrt (float n)) } |> Seq.forall ( fun x -> n % x <> 0 )) Seq.nth 10000 primes
  • Code Monkey Have Fun

    Project Euler Problem #3

    • 0 Comments
    Largest prime factor of 600851475143 : let primeFactors n = let isFactor n d = n % d = 0L let nextFactor n d = seq {d..n} |> Seq.find (isFactor n) (n, 2L, []) |> Seq.unfold ( fun (n, d, a) -> if isFactor n d then Some(d, ((n...
  • Code Monkey Have Fun

    Project Euler Problem #1

    • 0 Comments
    Project Euler is pretty darn cool. It’s a bunch of mathematical problems that require programming to solve. I’m having fun doing them in F#. They start very simple but quickly become more difficult. Problem 1 is to find the sum of all the multiples...
  • Code Monkey Have Fun

    Project Euler Problem #5

    • 0 Comments
    Smallest number divisible by each of 1 to 20 : First cut (takes almost an hour to execute!): let isFactor n d = n % d = 0 {1..Int32.MaxValue} |> Seq.find ( fun n -> [1..20] |> List.forall (isFactor n)) Second cut (takes a...
  • Code Monkey Have Fun

    Hey, Hey We’re the Monkeys

    • 0 Comments
    My current team is awesome! We’re a tight little team with an interesting history and have done some great work together. It’s a sad day though. Today was John’s last day. He’s going over to work on Seadragon -ish stuff – really, really cool project!...
  • Code Monkey Have Fun

    Project Euler Problem #2

    • 0 Comments
    Sum of even terms in Fibonacci sequence which are < four-million : (1, 1) |> Seq.unfold ( fun (a, b) -> Some(a, (b, a + b))) // fibs |> Seq.takeWhile ( fun x -> x <= 4000000) |> Seq.filter ( fun x -> x % 2 = 0) ...
  • Code Monkey Have Fun

    Project Euler Problem #6

    • 0 Comments
    Difference between sum of the squares and the square of the sum of 1 - 100 : ( fun ns -> let sqr x = x * x (sqr (List.sum ns)) - (List.map sqr ns |> List.sum) ) [1..100]
Page 3 of 4 (78 items) 1234