Gifted:
Jag fulade mig brutalt genom att använda rekursion på main-funktionen (den enda funktionen i mitt program f.ö) och användandet av ?-operatorn istället för klassiska if-satser...
Hehe, okej. Kan du visa koden?
Gifted:
programmet är ju inte direkt snällt för minnet, och skriver till oallokerat minne, men det funkar...
Grattis, du har lyckats stöta på odefinierat beteende i ett enstatementprogram.
Att det är enkelt att skriva oläslig kod med odefinierat beteende brukar inte räknas som en av C:s styrkor.
KID_IS_BACK:
Grattis, du har lyckats stöta på odefinierat beteende i ett enstatementprogram.
Yep.
KID_IS_BACK:
Att det är enkelt att skriva oläslig kod med odefinierat beteende brukar inte räknas som en av C:s styrkor.
Det är sant. Det var tänkt som ett bidrag till obfuscated C code contest.
Ska vi prata bisarra oneliners så kan Haskell göra det med. rot13:
module Rot13 where
import Char
main :: IO ()
main = interact f
f :: String -> String
f x = if length x == 0 then "" else (if isAlpha (head x) then chr ((ord (head x) - ord 'a' + 13) `mod` 26 + ord 'a') else head x):(f (tail x))
KID_IS_BACK:
bisarra oneliners
main(a,b){while((a=getchar())+1)putchar((b=64^a&95)&&b<27?a&224|(b+12)%26+1:a);}
21st Century Adonis:
int main(int a, char **b){while((a=getchar())+1)putchar((b=64^a&95)&&b<27?a&224|(b+12)%26+1:a); return 0;}
fix'd. Att skriva svårläslig kod är ingen ursäkt för att skriva program som inte följer standarden.
KID_IS_BACK:
fix'd. Att skriva svårläslig kod är ingen ursäkt för att skriva program som inte följer standarden.
nu var ju rubriken "bisarra oneliners"... och
KID_IS_BACK:
Plockar vi bort alla typdeklarationer och kommentarer får vi:
edit: smög sig in ett z...
KID_IS_BACK:
Srsly, hur många hundra rader hade det där tagit i C?
Njae... binary trees är ju ganska standard, men elegans är ju nåt som haskell ligger ganska mycket före i Minneseffektivitete däremot - och det är därför man använder ocaml.
Hur som helst. Jag kommer ihåg när jag skulle banka in monads. Det var inte kul. alls. Man måste nästan ha en lärare till sånt.
Har börjat lära mig haskell, det är roligt:
split :: (Eq a) => [a] -> a -> [[a]]
split list item = filter (not . null) $ foldr (\i parts ->
if i == item then []:parts
else (i:(head parts)):(tail parts)
) [[]] list
Hur fan ska man indentera, förresten?
Tråden låst på grund av inaktivitet