Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. A little F# for you

A little F# for you

Scheduled Pinned Locked Moved The Lounge
csharpphpwpfcomregex
113 Posts 48 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Josh Smith

    I've been studying F# a lot recently and find it really mind-bending.  Tomas Petricek, a fellow CPian, let me sneak preview his series of F# articles and they are very good.  I took one of his examples and modified it a bit.  The following code displays "sum = 6", but how that happens is other-worldly...check it out:

    #light

    let rec sum nums =
      match nums with
      | head::tail -> head + sum(tail)
      | [] -> 0
     
    printf "sum = %i" (sum [1; 2; 3])

    Weird, eh?   F# is coooool. :cool:

    :josh: My WPF Blog[^] Without a strive for perfection I would be terribly bored.

    P Offline
    P Offline
    Pete OHanlon
    wrote on last edited by
    #42

    Strangely reminiscent of Lisp as well.

    Deja View - the feeling that you've seen this post before.

    E 1 Reply Last reply
    0
    • J Josh Smith

      I've been studying F# a lot recently and find it really mind-bending.  Tomas Petricek, a fellow CPian, let me sneak preview his series of F# articles and they are very good.  I took one of his examples and modified it a bit.  The following code displays "sum = 6", but how that happens is other-worldly...check it out:

      #light

      let rec sum nums =
        match nums with
        | head::tail -> head + sum(tail)
        | [] -> 0
       
      printf "sum = %i" (sum [1; 2; 3])

      Weird, eh?   F# is coooool. :cool:

      :josh: My WPF Blog[^] Without a strive for perfection I would be terribly bored.

      J Offline
      J Offline
      Judah Gabriel Himango
      wrote on last edited by
      #43

      So, you're declaring a function called sum, and it's recursive (the rec part). It takes a parameter called nums. I see some pattern matching going on, but I start getting lost after that. :) Care to explain? *edit*, nevermind, I see you posted comments in another post that explain it. Thanks.

      Tech, life, family, faith: Give me a visit. I'm currently blogging about: No, Not I - A poem by Holocaust escapee, chief rabbi, and Messiah-follower Daniel Zion The apostle Paul, modernly speaking: Epistles of Paul Judah Himango

      J 1 Reply Last reply
      0
      • M Marc Clifton

        Josh Smith wrote:

        Weird, eh? F# is coooool.

        I think we need to explore your childhood, Josh. Marc

        Thyme In The Country
        Interacx
        My Blog

        J Offline
        J Offline
        Josh Smith
        wrote on last edited by
        #44

        Marc Clifton wrote:

        I think we need to explore your childhood, Josh.

        :laugh:  I was raised by a pack of wolves, and ate peyote for breakfast.

        :josh: My WPF Blog[^] Without a strive for perfection I would be terribly bored.

        E 1 Reply Last reply
        0
        • J Judah Gabriel Himango

          So, you're declaring a function called sum, and it's recursive (the rec part). It takes a parameter called nums. I see some pattern matching going on, but I start getting lost after that. :) Care to explain? *edit*, nevermind, I see you posted comments in another post that explain it. Thanks.

          Tech, life, family, faith: Give me a visit. I'm currently blogging about: No, Not I - A poem by Holocaust escapee, chief rabbi, and Messiah-follower Daniel Zion The apostle Paul, modernly speaking: Epistles of Paul Judah Himango

          J Offline
          J Offline
          Josh Smith
          wrote on last edited by
          #45

          See here[^].

          :josh: My WPF Blog[^] Without a strive for perfection I would be terribly bored.

          1 Reply Last reply
          0
          • Q QuiJohn

            F# you too.


            Faith is a fine invention For gentlemen who see; But microscopes are prudent In an emergency! -Emily Dickinson

            D Offline
            D Offline
            Douglas Troy
            wrote on last edited by
            #46

            Now that would be a good Nerd Shirt.


            :..::. Douglas H. Troy ::..
            Bad Astronomy |VCF|wxWidgets|WTL

            1 Reply Last reply
            0
            • J Josh Smith

              John Simmons / outlaw programmer wrote:

              Looks like a bastardization of dBase2 and interpreted basic.

              Something tells me that you won't be an F# "early adopter." :)

              :josh: My WPF Blog[^] Without a strive for perfection I would be terribly bored.

              R Offline
              R Offline
              realJSOP
              wrote on last edited by
              #47

              If it took me almost 7 years to start coding in .net, you can imagine how excited I am about F#...

              "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
              -----
              "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

              R B 2 Replies Last reply
              0
              • J Josh Smith

                Marc Clifton wrote:

                I think we need to explore your childhood, Josh.

                :laugh:  I was raised by a pack of wolves, and ate peyote for breakfast.

                :josh: My WPF Blog[^] Without a strive for perfection I would be terribly bored.

                E Offline
                E Offline
                El Corazon
                wrote on last edited by
                #48

                Josh Smith wrote:

                I was raised by a pack of wolves

                we might be related! ;P

                _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)

                1 Reply Last reply
                0
                • J Justin Perez

                  Ravel H. Joyce wrote:

                  But no, I won't do anything like that. I promise.

                  Ok good. Like I said you are a very smart kid, and drugs would only ruin your hopes, dreams, and your desire to be a good, honest person. It will kill your zest for life! You really should remove that Hansen song from your signature though, and stop listenting to that crap. That will also ruin your life!:laugh::laugh::laugh::cool:

                  I get all the news I need from the weather report - Paul Simon (from "The Only Living Boy in New York")

                  S Offline
                  S Offline
                  soap brain
                  wrote on last edited by
                  #49

                  Justin Perez wrote:

                  stop listenting to that crap

                  :suss: ... ... ... ...I almost didn't change it, you know...'Mmmbop' is fun! You're killing my zest for life.

                  "Who wants waffles? We got a new album out...it's called 10,000 Days. Buy it so I can afford waffles." -Maynard James Keenan

                  J T 2 Replies Last reply
                  0
                  • D Dan Neely

                    ph'nglui magl'nath cthulhu r'lyeh wagn'nagl fhtagn

                    -- If you view money as inherently evil, I view it as my duty to assist in making you more virtuous.

                    E Offline
                    E Offline
                    El Corazon
                    wrote on last edited by
                    #50

                    yes, but the big question is... is He dreaming of F#?

                    _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)

                    D 1 Reply Last reply
                    0
                    • P Pete OHanlon

                      Strangely reminiscent of Lisp as well.

                      Deja View - the feeling that you've seen this post before.

                      E Offline
                      E Offline
                      El Corazon
                      wrote on last edited by
                      #51

                      everything old is new again....

                      _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)

                      1 Reply Last reply
                      0
                      • R Rama Krishna Vavilala

                        Not very different than prolog or scheme (my favorite language). Prolog:

                        sum([X | Y], Z) :- sum(Y, A), Z is A + X.
                        sum([], 0).

                        Scheme:

                        (define sum (lambda (x)
                        (if (null? x) 0 (+ (car x) (sum (cdr x))))))

                        Co-Author ASP.NET AJAX in Action

                        J Offline
                        J Offline
                        Judah Gabriel Himango
                        wrote on last edited by
                        #52

                        Scheme and its never ending parens reminds me of this XKCD on Lisp[^]. :)

                        Tech, life, family, faith: Give me a visit. I'm currently blogging about: No, Not I - A poem by Holocaust escapee, chief rabbi, and Messiah-follower Daniel Zion The apostle Paul, modernly speaking: Epistles of Paul Judah Himango

                        1 Reply Last reply
                        0
                        • E El Corazon

                          yes, but the big question is... is He dreaming of F#?

                          _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)

                          D Offline
                          D Offline
                          Dan Neely
                          wrote on last edited by
                          #53

                          nah, malbolge[^]

                          -- If you view money as inherently evil, I view it as my duty to assist in making you more virtuous.

                          E 1 Reply Last reply
                          0
                          • J Josh Smith

                            I've been studying F# a lot recently and find it really mind-bending.  Tomas Petricek, a fellow CPian, let me sneak preview his series of F# articles and they are very good.  I took one of his examples and modified it a bit.  The following code displays "sum = 6", but how that happens is other-worldly...check it out:

                            #light

                            let rec sum nums =
                              match nums with
                              | head::tail -> head + sum(tail)
                              | [] -> 0
                             
                            printf "sum = %i" (sum [1; 2; 3])

                            Weird, eh?   F# is coooool. :cool:

                            :josh: My WPF Blog[^] Without a strive for perfection I would be terribly bored.

                            P Offline
                            P Offline
                            Pete OHanlon
                            wrote on last edited by
                            #54

                            Grown bored with WPF now have you? No challenges left there?

                            Deja View - the feeling that you've seen this post before.

                            J 1 Reply Last reply
                            0
                            • S soap brain

                              Justin Perez wrote:

                              stop listenting to that crap

                              :suss: ... ... ... ...I almost didn't change it, you know...'Mmmbop' is fun! You're killing my zest for life.

                              "Who wants waffles? We got a new album out...it's called 10,000 Days. Buy it so I can afford waffles." -Maynard James Keenan

                              J Offline
                              J Offline
                              Justin Perez
                              wrote on last edited by
                              #55

                              Ravel H. Joyce wrote:

                              ...I almost didn't change it, you know...'Mmmbop' is fun! You're killing my zest for life.

                              Haha sorry man, you can keep it in your sig! :rolleyes:

                              I get all the news I need from the weather report - Paul Simon (from "The Only Living Boy in New York")

                              S 1 Reply Last reply
                              0
                              • D Dan Neely

                                nah, malbolge[^]

                                -- If you view money as inherently evil, I view it as my duty to assist in making you more virtuous.

                                E Offline
                                E Offline
                                El Corazon
                                wrote on last edited by
                                #56

                                dan neely wrote:

                                nah, malbolge[^]

                                :doh::doh: I had heard of that, but never looked to see what it was.... :doh::doh:

                                _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)

                                1 Reply Last reply
                                0
                                • P Pete OHanlon

                                  Grown bored with WPF now have you? No challenges left there?

                                  Deja View - the feeling that you've seen this post before.

                                  J Offline
                                  J Offline
                                  Josh Smith
                                  wrote on last edited by
                                  #57

                                  Pete O'Hanlon wrote:

                                  Grown bored with WPF now have you?

                                  Argh! Don't say that!!  I, too, feel that I "must remain" pidgeon-holed into WPF.  But I don't want to feel trapped like that.  I am a bit tired of WPF at the moment, considering that I've studied nothing else for the past two years!  Plus, part of my agenda[^] is to see if/how F# and WPF can work together.

                                  Pete O'Hanlon wrote:

                                  No challenges left there?

                                  Yeah right.  I've only scratched the surface.

                                  :josh: My WPF Blog[^] Without a strive for perfection I would be terribly bored.

                                  R E P 3 Replies Last reply
                                  0
                                  • J Justin Perez

                                    Ravel H. Joyce wrote:

                                    ...I almost didn't change it, you know...'Mmmbop' is fun! You're killing my zest for life.

                                    Haha sorry man, you can keep it in your sig! :rolleyes:

                                    I get all the news I need from the weather report - Paul Simon (from "The Only Living Boy in New York")

                                    S Offline
                                    S Offline
                                    soap brain
                                    wrote on last edited by
                                    #58

                                    Nah, I like Maynard. I admire him perhaps more than anybody else. Not that I would ever tell anyone such a thing... :doh:

                                    "Who wants waffles? We got a new album out...it's called 10,000 Days. Buy it so I can afford waffles." -Maynard James Keenan

                                    1 Reply Last reply
                                    0
                                    • J Josh Smith

                                      Pete O'Hanlon wrote:

                                      Grown bored with WPF now have you?

                                      Argh! Don't say that!!  I, too, feel that I "must remain" pidgeon-holed into WPF.  But I don't want to feel trapped like that.  I am a bit tired of WPF at the moment, considering that I've studied nothing else for the past two years!  Plus, part of my agenda[^] is to see if/how F# and WPF can work together.

                                      Pete O'Hanlon wrote:

                                      No challenges left there?

                                      Yeah right.  I've only scratched the surface.

                                      :josh: My WPF Blog[^] Without a strive for perfection I would be terribly bored.

                                      R Offline
                                      R Offline
                                      Rama Krishna Vavilala
                                      wrote on last edited by
                                      #59

                                      Josh Smith wrote:

                                      I've only scratched the surface.

                                      of WPF or F#?:rolleyes:

                                      Co-Author ASP.NET AJAX in Action

                                      J 1 Reply Last reply
                                      0
                                      • J Josh Smith

                                        I've been studying F# a lot recently and find it really mind-bending.  Tomas Petricek, a fellow CPian, let me sneak preview his series of F# articles and they are very good.  I took one of his examples and modified it a bit.  The following code displays "sum = 6", but how that happens is other-worldly...check it out:

                                        #light

                                        let rec sum nums =
                                          match nums with
                                          | head::tail -> head + sum(tail)
                                          | [] -> 0
                                         
                                        printf "sum = %i" (sum [1; 2; 3])

                                        Weird, eh?   F# is coooool. :cool:

                                        :josh: My WPF Blog[^] Without a strive for perfection I would be terribly bored.

                                        K Offline
                                        K Offline
                                        Keith Andersch
                                        wrote on last edited by
                                        #60

                                        Oh...I remember this. In my Programming Languages class when we did ML....*shivers* Right when I saw "head::tail" and the recursive call. I would like to see a whole application written in this, though. - Keith

                                        1 Reply Last reply
                                        0
                                        • J Josh Smith

                                          leppie wrote:

                                          Wouldnt that just destructure your input list into 'head' and 'tail' variable? Perhaps the '::' has special meaning?

                                          Keep in mind, I've only been studying F# for a few days now.  But, my current understanding is that F# uses the x::y syntax for dealing with its "list" type.  You can create a list, or pull one apart, with that :: operator.  AFAIK, writing "head::tail" (or foo::goo) is a way of saying "Give me the first cell in the list, and then also give me the remainder of the list."

                                          :josh: My WPF Blog[^] Without a strive for perfection I would be terribly bored.

                                          L Offline
                                          L Offline
                                          leppie
                                          wrote on last edited by
                                          #61

                                          Ahh so it similar to to Scheme/Lisp's . operator :)

                                          xacc.ide
                                          The rule of three: "The first time you notice something that might repeat, don't generalize it. The second time the situation occurs, develop in a similar fashion -- possibly even copy/paste -- but don't generalize yet. On the third time, look to generalize the approach."

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups