Advertisement
enfiskutensykkel

FizzBuzz

Sep 22nd, 2013
308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 0.73 KB | None | 0 0
  1. ### Functions ###
  2. range = $(if $(filter $1,$(lastword $3)),$3,$(call range,$1,$2,$3 $(words $3)))  
  3. make_range = $(foreach i,$(call range,$1),$(call range,$2))
  4. equal = $(if $(filter-out $1,$2),,$1)
  5.  
  6.  
  7. ### Variables ###
  8. limit := 101
  9. numbers := $(wordlist 2,$(limit),$(call range,$(limit)))
  10.  
  11. threes := $(wordlist 2,$(limit),$(call make_range,$(limit),2))
  12. fives := $(wordlist 2,$(limit),$(call make_range,$(limit),4))
  13.  
  14. fizzbuzz := $(foreach v,$(numbers),\
  15.        $(if $(and $(call equal,0,$(word $(v),$(threes))),$(call equal,0,$(word $(v),$(fives)))),FizzBuzz,\
  16.        $(if $(call equal,0,$(word $(v),$(threes))),Fizz,\
  17.        $(if $(call equal,0,$(word $(v),$(fives))),Buzz,$(v)))))
  18.  
  19.  
  20. ### Target ###
  21. .PHONY: all
  22. all: ; $(info $(fizzbuzz))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement