Posts
  • Code Monkey Have Fun

    Tearing Away the Scaffolding

    • 2 Comments
    [The seventh in a series of posts on the evolution of TransForth ] At this point we have a reasonably complete Forth that’s pretty fun to play with. Like I said in the first post though, we don’t just want to build a Forth in F#. Stopping...
  • Code Monkey Have Fun

    Project Euler Problem #14

    • 2 Comments
    Longest hailstone sequence with starting number under one-million. let hailstone n = Seq.unfold ( function 0L -> None | 1L -> Some(1L, 0L)                                     ...
  • Code Monkey Have Fun

    Project Euler Problem #11

    • 2 Comments
    Greatest product of four adjacent numbers (up, down, left, right, or diagonally) in this 20x20 grid: let grid = [|08;02;22;97;38;15;00;40;00;75;04;05;07;78;52;12;50;77;91;08; 49;49;99;40;17;81;18;57;60;87;17;40;98;43;69;48;04;56;62;00; 81;49;31;73;55;79;14;29;93;71;40;67;53;88;30;03;49;13;36;65;...
  • Code Monkey Have Fun

    Functional I/O (Historical Debugging)

    • 2 Comments
    [Part 14 of the FScheme series ] Historical Debugging in VS2010 is quite the engineering feat! We can actually pull off something similar in our interpreter with amazing ease. Because of the pure nature of our functional I/O system (last two posts...
  • Code Monkey Have Fun

    8-Queens in 8 Lines

    • 1 Comments
    Brushing up on “whiteboard coding” for internal interviews… Inspired by Hal Ableson’s streams-based solution to this old classic in the SICP lectures, here’s a pretty concise n-Queens solution: let rec Solutions n...
  • Code Monkey Have Fun

    Turtles All The Way Down

    • 1 Comments
    What do you think this “code” does? 0(1adf89r)720x Well, it’s a ridiculously terse, stack-based Logo-like language with single character commands. Beginning with 0, it repeatedly (720 times) increments the top stack value and moves forward by that amount...
  • Code Monkey Have Fun

    Going “Retro” and Loving It!

    • 1 Comments
    Continuing my concatenative language kick, I’ve been having fun playing with Retro ( http://www.retroforth.com ) and couldn’t resist making an F#-based VM on which to run it. It is an elegant, minimal Forth with an important twist. What caught...
  • Code Monkey Have Fun

    Multiply-step Instruction

    • 1 Comments
    Fourth in a series on colorForth and GreenArrays hardware . This time, how the multiply-step instruction works on the F18. Bit Twiddling is Fun! Here's a bit-twiddly interview question for you: Design an algorithm to multiply fixnum integers in...
  • Code Monkey Have Fun

    What’s a computer without I/O? Hot Silicon At Best…

    • 1 Comments
    [FYI: Matt Hellige’s excellent GoForth runs on this ] I’m completely astonished at how quickly a community has sprung up around Notch’s DCPU-16 . In the first 24 hours there were already tens of implementations in various languages ( including mine )...
  • 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

    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

    Recursion Is The New Iteration

    • 1 Comments
    I remember the strange feeling as a kid the first time I saw structured BASIC after having been doing everything with line numbers. Any time I happened to walk into a Radio Shack in the early 80s I’d just have to leave this behind:   I was in a GOTO...
  • Code Monkey Have Fun

    What's Lisp Without Lists?!

    • 1 Comments
    [Part 6 of the FScheme series ] Once again, I must plug Bill Hails’ book Lists How could we even be pretending this is Lisp when we have yet to add lists! We need to add the standard ‘cons’, ‘car’, and ‘cdr’...
  • Code Monkey Have Fun

    Just ‘let’ Me Be Already!

    • 1 Comments
    [Part 2 of the FScheme series ] Still working through Bill Hails’ awesome book . Adding to the FScheme interpreter from this previous post . Now we’ll add ‘let’. To do this we’re changing the evaluation model into an environment...
  • Code Monkey Have Fun

    Lambda the Ultimate!

    • 1 Comments
    [Part 3 of the FScheme series ] Continuing along in Bill Hails’ book . Be sure to follow the previous posts . Lambda Now we’re going to add the all-powerful ‘lambda’! Since we’ve already done all the environment...
  • 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

    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

    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

    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

    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

    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

    Project Euler Problem #4

    • 0 Comments
    Largest palindrome from product of two 3-digit numbers : let isPalendrome n = let s = n.ToString() |> List.of_seq s = List.rev s seq { for a in 100..999 do for b in a..999 -> a * b } |> Seq.filter isPalendrome |> Seq.max
  • 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

    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]
  • 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...
Page 2 of 4 (78 items) 1234