Skip to content

Instantly share code, notes, and snippets.

@nihaokid
Created August 30, 2013 02:30
Show Gist options
  • Save nihaokid/6385754 to your computer and use it in GitHub Desktop.
Save nihaokid/6385754 to your computer and use it in GitHub Desktop.
problem:
1. give a list, 1 to 10
2. get even number
3. divided by two
4. print them
@nihaokid
Copy link
Author

javascript

function range(start, end) {
    var foo = [];
    for (var i = start; i <= end; i++) {
        foo.push(i);
    }
    return foo;
}

var list = range(1, 10);

function isEven(num) {
    return num % 2 == 0
}

function devide(num) {
    return num / 2
}
list.filter(isEven).map(devide).forEach(console.log;})

@nihaokid
Copy link
Author

go

package main
import "fmt"
func main(){    
    pow := make([]int, 10)
    for i:=range pow {
        pow[i] = i+1
    }
    result := make([]int, 5)
    index := 0
    for i:=range pow {
        if (pow[i]%2 == 0){
            result[index] = pow[i]
            index++
        }
    }
    for i:=range result {
        fmt.Printf("%d\t",result[i]/2)
    }
    fmt.Printf("\n")
}

@nihaokid
Copy link
Author

scala
lazy version

Stream.from(1).filter(_ % 2 == 0).map(_ / 2).take(5).foreach(println)

common version

Range(1,11).filter(_%2 == 0).map(_/2).map(println)

@nihaokid
Copy link
Author

ruby

(1..10).select{|x| x % 2 == 0}.map{|x| x / 2}.each{|x| puts x}

@nihaokid
Copy link
Author

clojure

lazy version

(take 5 (for [x (iterate inc 1) :when (zero? (rem x 2))] (/ x 2)))

or

(take 5 (map (fn [x] (/ x 2)) (filter even? (iterate inc 1))))

common version

(print (map (fn [a] (/ a 2)) (filter even? (range 1 11))))

or

(println (map #(/ %1 2)  (filter even? (range 10))))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment