Skip to content

Instantly share code, notes, and snippets.

@harms
Created February 14, 2011 17:45
Show Gist options
  • Save harms/826235 to your computer and use it in GitHub Desktop.
Save harms/826235 to your computer and use it in GitHub Desktop.
An indulgence in sarcastic humor.
NB. The Prime Factor Kata, in J
NB. -- an exercise in humor --
NB. Inspired by http://butunclebob.com/ArticleS.UncleBob.ThePrimeFactorsKata
NB. RED
testPrimeFactors =: 3 : 0
assert ($0) -: primefactors 1 NB. add test of 1
)
NB. GREEN
primefactors =: 3 : 0
select. y
case. 1 do. $0 NB. add code to pass test of 1
end.
)
NB. (postpone REFACTOR)
NB. RED
testPrimeFactors =: 3 : 0
assert ($0) -: primefactors 1
assert (,2) -: primefactors 2 NB. add test of 2
)
NB. GREEN
primefactors =: 3 : 0
select. y
case. 1 do. $0
case. 2 do. ,2 NB. add code to pass test of 2
end.
)
NB. (postpone REFACTOR)
NB. RED
testPrimeFactors =: 3 : 0
assert ($0) -: primefactors 1
assert (,2) -: primefactors 2
assert (,3) -: primefactors 3 NB. add test of 3
)
NB. GREEN
primefactors =: 3 : 0
select. y
case. 1 do. $0
case. 2 do. ,2
case. 3 do. ,3 NB. add code to pass test of 3
end.
)
NB. (postpone REFACTOR)
NB. RED
testPrimeFactors =: 3 : 0
assert ($0) -: primefactors 1
assert (,2) -: primefactors 2
assert (,3) -: primefactors 3
assert 2 2 -: primefactors 4 NB. add test of 4
)
NB. GREEN
primefactors =: 3 : 0
select. y
case. 1 do. $0
case. 2 do. ,2
case. 3 do. ,3
case. 4 do. 2 2 NB. add code to pass test of 4
end.
)
NB. (postpone REFACTOR)
NB. RED
testPrimeFactors =: 3 : 0
assert ($0) -: primefactors 1
assert (,2) -: primefactors 2
assert (,3) -: primefactors 3
assert 2 2 -: primefactors 4
assert 2 3 -: primefactors 6 NB. add test of 6
)
NB. GREEN
primefactors =: 3 : 0
select. y
case. 1 do. $0
case. 2 do. ,2
case. 3 do. ,3
case. 4 do. 2 2
case. 6 do. 2 3 NB. add code to pass test of 6
end.
)
NB. (postpone REFACTOR)
NB. RED
testPrimeFactors =: 3 : 0
assert ($0) -: primefactors 1
assert (,2) -: primefactors 2
assert (,3) -: primefactors 3
assert 2 2 -: primefactors 4
assert 2 3 -: primefactors 6
assert 2 2 2 -: primefactors 8 NB. add test of 8
)
NB. GREEN
primefactors =: 3 : 0
select. y
case. 1 do. $0
case. 2 do. ,2
case. 3 do. ,3
case. 4 do. 2 2
case. 6 do. 2 3
case. 8 do. 2 2 2 NB. add code to pass test of 8
end.
)
NB. (postpone REFACTOR)
NB. RED
testPrimeFactors =: 3 : 0
assert ($0) -: primefactors 1
assert (,2) -: primefactors 2
assert (,3) -: primefactors 3
assert 2 2 -: primefactors 4
assert 2 3 -: primefactors 6
assert 2 2 2 -: primefactors 8
assert 3 3 -: primefactors 9 NB. add final test
)
NB. GREEN
primefactors =: 3 : 0
select. y
case. 1 do. $0
case. 2 do. ,2
case. 3 do. ,3
case. 4 do. 2 2
case. 6 do. 2 3
case. 8 do. 2 2 2
case. 9 do. 3 3 NB. add code to pass final test
end.
)
NB. REFACTOR
primefactors =: q: : [: NB. or perhaps simply q:
NB. end of kata
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment