9 Delik Görevi [kapalı]


65

9 Delik Görevi

  • 9 kod golf çeşitli zorluklarla mücadele.
  • Aynı dili bir defadan fazla kullanmanın cezaları.
  • Bu soru pars, delik şampiyonları ve kupa kazananlarla güncellenecek.

    Bu, bazı arkadaşlarımla yaptığım bir yarışmadan geliyor, normal biçim değil, ama bazılarınız üzerinde farklı dönüşleri takdir edersiniz. Aşağıdaki zorluklar, kurallar ve ödüller.

delikler

  1. Greenway (24)

    f(c:string, n:integer)
    nÖrneklerini içeren bir çizgi yazdırır c.

  2. Kaba Bir Yerde (73)

    f(t:string, s:string, n:integer) -> i
    Nerede iendeksidir nthörneğinin siçinde t.

  3. Akşam yemeği için köri (6235)

    f(x:function, y: function) -> g Nerede garayacak bir fonksiyondur y, nkat; ngeri dönüş değeri neredex

  4. Spew (92)

    f(p:string) Dosyaya yazar pve rastgele boyuttaki rastgele karakterlerin (ascii) bir dikdörtgeniyle doldurur.

  5. Hazine Avı (75)

    f(p:string, c:char) -> (x, y)pBir sembol ızgarası içeren dosyayı okur xve ybu sembolün ilk örneğinin ve koordinatlarını ızgara içinde döndürdüğünü varsayar.

  6. Kwai Nehri Üzerindeki Köprü (179)

    f(l:list[int]) İçin fark köprüler şemasını yazdırır l. Örneğin[1,7,3,17,1]

     /+6\ /-4\ /+14\  /-16\
    1    7    3     17     1
    

    Boşlukların yukarıdaki sayının boyutuna göre oluşturulduğundan emin olun. 3 haneli uzun bir sayı için, aşağıdaki satırdaki rakamlar arasında 4 boşluğa ihtiyacınız olacak.

    Yakala: Bir yerlerde, kodun pantolonu hecelemeli (En az 1 alfanümerik olmayan sınırlayıcı olmalı.) tr(ou,se)(rs)

  7. Golf Oynarken Zaman Uçuyor (1157)

    f(p:string) -> [h, m]pSaat göstergesinin bir çizgiyle ve dakikalarla iki ile temsil edildiği bir analog saatin ASCII gösterimini içeren dosyayı okur . İki element içeren bir liste çıktı: saat üzerinde gösterilen saatler ve dakikalar. Sadece bir el görülebiliyorsa, her iki noktayı da bu pozisyona getirin.

    İşte bir el için tüm olası kombinasyonlar.

    \ | /
     \|/
    --o--
     /|\
    / | \
    

    Bu pozisyonlar sırasıyla (12, 1, 3, 5, 6, 7, 9, 11). Saat yüzündeki diğer karakterlerin boşluk olduğunu varsayalım.

  8. Kereste! ()

    f(p:string) -> b:boolean P, içinde ascii bir bina bulunan bir dosyaya giden yoldur. Altlarında beyaz boşluk olan bloklar düşecektir. (Yüzleri tersi yönde sabit bir blok varsa, yerinde kalan eğik çizgiler hariç). Eğer yapı yapısal olarak bütüncülse doğruysa, aksi halde yanlış döndürün. Tüm boşluk olmayan bloklar sağlam ve eğik çizgilerden başka sayılır, hepsi düşer.

    Yapısal olarak güvenli

    ____
    |/\|
    |  |
    

    Güvenli değil

    |__
      | 
      |
    

    Güvenli sürüm

    |__
    \\| 
      |
    
  9. Slacker Haberleri (218)

    f(s:string, r:string, p:string) Hacker News'deki en iyi 20 hikayenin başlığını alır ve tüm örneklerini sdeğiştirir r, ardından yeni başlıkları pher bir h1 öğesinin içinde bulunduğu bir html dosyasına yazar .

    Çıktılan dosya böyle bir şey olmalı

    <h1>Some title</h1></h1>Some other title</h1>...etc

    Yakalamak :

    • HN api kullanamazsınız.
    • Regex kullanamazsınız.
    • Kodunuzda hiçbir yerde açılı ayraç kullanamazsınız.

puanlama

  • Karakter sayısı, derlenip doğru çalışacak işlevin uzunluğu. Ancak, ithalat da dahil olmak üzere tam kodu göndermeniz gerekir.
  • Gönderinizdeki her tekrarlanan dil için % + 10 . (Örneğin, Ruby'yi 3 çözüm için kullanıyorsanız, o zaman final puanınız 1.2 ile çarpılır). Aynı dilin sayısının farklı versiyonları hala aynı dil olarak sayılıyor.
  • Par her delik için ortalama puan olacaktır.
  • Çözümlerinizi tek bir cevapla gönderin.
  • Genel puanınız karakter sayınız + dil cezanız, sonra tamamlarsınız.

Kupalar

  • Gold Jacket - ( @Sprigyig - 1290) En düşük toplam puan
  • Atıcı - ( @Sprigyig - 9) En çok kullanılan diller
  • Bunker - Herhangi bir delikte en yüksek puanın üstünde
  • Bir Uçakta Yılanlar - ( @AsksAnyway - 1727) Tek bir çözümle en yüksek python karakter sunumu
  • İyi Parçalar - ( @AsksAnyway - 255) Tek bir çözümde en yüksek JS karakter sayısı
  • Shakey Steve - Arayüz kullanan en kısa çözüm
  • Buralarda Değilsin - Dilin en kısa wikipedia sayfasına sahip olduğu en kısa benzersiz dil çözümü.
  • Mutlu Gilmoore - ( @AsksAnyway - 31) Kodda 'timsah' kelimesini içeren en kısa çözüm.
  • Unicycling Dwarf Magic - 9 gönderim kaynak dosyanızın varsayılan uzantıları, Oxford Sözlüğü'ndeki bir kelimenin mükemmel bir anagramıdır.

9 deliğin tümünü tamamladığınızda yalnızca bir kupaya hak kazanabilirsiniz


gönderimler

  1. @Sprigyig 1290
  2. @Firefly 1320
  3. @grc 1395
  4. @Trevor M 1465
  5. @C Gearhart 1654
  6. @Guy Sirton 1719
  7. @AsksAnyway 4651

2
@anorton <&>
Dan Prince,

1
Analog bir saatin her bir el için 12 pozisyonu vardır, ancak sadece bize 8 verin. Bu nasıl çalışır?
Kevin,

1
@DanPrince Konumun /saat 1 veya saat 2'yi göstermesini ister misiniz? (ve diğer tüm köşegenler için de geçerlidir)
apnorton 20

1
@ antonor 1/5, 5/25, 7/35, 11/55
Dan Prince

2
Bir dilin farklı sürümleri veya lezzetleri, puanlama amacıyla "farklı" olarak kabul edilir mi? örneğin Python 2 ve Python 3? Visual Basic vs VB.Net vs VBScript? Süper marketlere veya C vs C ++ gibi süper marketlere ne dersiniz? Bilgiçliği için üzgünüm ama bu bir kod golf! :-)
Darren Stone,

Yanıtlar:


11

Puanı: 4651

2907 +% 60 ceza

1. GolfScript - 14 karakter

{*}:a;lligator

Kullanım: c n aörn. "test" 3 a->testtesttest

star Mutlu Gilmoore

2. Python - 72 karakter

def f(t,s,n,p=-1):
 while n:p=t.find(s,p+1);n-=1 if p+1 else n
 return p

3. Javascript - 255 karakter

/*
Curry for Dinner

f(x:function, y: function) -> g Where g is a function that will call y, n times; where n is the return value of x
*/
function f(x, y) {
    var g = function() {
        var n = x();
        for (var i = 0; i < n; ++i) {
            y();
        }
    };
    return g;
}

starBunker starİyi Parçalar

4. Python - 132 karakter

from random import randrange as r
def f(p):l=range(r(9));open(p,'w').writelines([''.join([chr(r(94)+33)for _ in l])+'\n'for _ in l])

5. Python - 89 karakter

def f(p,c):
 for y,d in enumerate(open(p).readlines()):
  x=d.find(c)
  if x+1:return x,y

6. Python - 189 karakter

def f(l):
 for i in 0,1:
  for n,u in enumerate(l):
   o=l[n+1] if len(l)>n+1 else id 
   if i:print u,' '*4,
   elif o!=id:print' /'+('+' if o-u>0 else '')+str(o-u)+'sers'*0+'\\ ',
  print

7. Python - 1727 karakter

def f(p):
    lines = open(p).read().split('\n')

    # preprocess lines to ensure correct format
    if len(lines) < 5:
        for i, line in enumerate(list(lines)):
            if 'o' in line:
                if i == 0:
                    lines.insert(0, ' ' * 5)
                    lines.insert(0, ' ' * 5)
                elif i == 1:
                    lines.insert(0, ' ' * 5)
        while len(lines) < 5:
            lines.append(' ' * 5)

    # find characters that can only be the hour hand
    for i, line in enumerate(lines):
        if i == 0:
            if '\\' in line:
               hour = 11
            elif '|' in line:
                hour = 12
            elif '/' in line:
                hour = 1
        elif i == 2:
            if '--o' in line:
                hour = 9
            elif 'o--' in line:
                hour = 3
        elif i == 4:
            if '/' in line:
               hour = 7
            elif '|' in line:
                hour = 6
            elif '\\' in line:
                hour = 5

    # find characters that might represent the minute hand
    possible_minutes = []
    for i, line in enumerate(lines):
        if i == 1:
            if '\\' in line:
                possible_minutes.append(55)
            if '|' in line:
                possible_minutes.append(0)
            if '/' in line:
                possible_minutes.append(5)
        elif i == 2:
            if '-o' in line:
                possible_minutes.append(45)
            if 'o-' in line:
                possible_minutes.append(15)
        elif i == 3:
            if '/' in line:
                possible_minutes.append(35)
            if '|' in line:
                possible_minutes.append(30)
            if '\\' in line:
                possible_minutes.append(25)

    HOUR_MINUTES = {
        12: 0,
        1: 5,
        3: 15,
        5: 25,
        6: 30,
        7: 35,
        9: 45,
        11: 55,
    }

    # remove minute hand that is actually hour hand
    if len(possible_minutes) > 1:
        not_minute = HOUR_MINUTES[hour]
        if not_minute in possible_minutes:
            possible_minutes.remove(not_minute)

    assert(len(possible_minutes) == 1)
    minute = possible_minutes[0]

    h, m = hour, minute          
    return [h, m]

star Uçakta yılanlar

8. Python - 226 karakter

def f(p):
 e=set;q,t=e(),True
 for l in open(p).readlines():
  r,b,q=e(q),e(),e()
  for i,c in enumerate(l):
   if c.strip():b.add(i);q.add(i-1 if c == '/' else i+1 if c == '\\' else i)
  if not r.issubset(b):t=False
 return t

9. Python - 203 karakter

import urllib
def f(s,r,p):f,l,g=open(p,'w'),'\74','\76';[f.write(l+'h1'+g+t.replace(s,r)+'h1'+g)for i,t in enumerate(urllib.urlopen('http://x.co/3WYln').read().split('title'+g))if(i in range(2,42))&i%2]

"#Alligator" yorumunun 1 numaralı kodla ne alakası var? Bazı sebeplerden dolayı kelime sayımına dahil edilmiş gibi görünüyor.
Dhara

1
@Dhara Mutlu Gilmoore kupası için: “Kodda 'timsah' kelimesi olan en kısa çözüm.”
PhiNotPi

# 9 köşeli parantezleri ( i<i<42) kullanıyor mu, yoksa sadece operatör olarak kullandığınız sürece izin veriliyor mu?
Christopher Creutzig,

@ChristopherCreutzig Teşekkürler düzeltildi.
AsksAnyway

7

Skor: 1320

Bu puanı iyileştirmek için yapacak çok şeyim var ... Oh, en azından tekrarlanan dil cezalarından kaçındım. :-)

1. Python (21 karakter)

def f(c,n):print(c*n)

"Açık" bir çözüm.

2. ECMAScript 6 (47 karakter)

f=(t,s,n)=>t.split(s).slice(0,n).join(s).length

Dizini, alışılmadık bir şekilde, alt dize uzunluğunu önce sayarak bulur.

3. J (12 karakter)

f=:2 :'v^:u'

^:Yerleşik bağlantı bir işlevi bir güce yükseltir (yani, işlevi belirli sayıda tekrarlar). Bu f^:3 y = f (f (f y))),. Bununla birlikte, aynı zamanda, tamsayılardan ziyade işlevleri kabul etmek için aşırı yüklenmiştir; bu durumda, tekrar sayısını almak için girdideki işlevi çalıştırır. Maalesef, görev için operandları çevirmemiz gerekiyor, aksi halde kesin bir cevabı buluruz f=:^:.

4. C (95 karakter)

#include <stdio.h>
#include <stdlib.h>

f(char*p){FILE*f=fopen(p,"a");for(int n=rand(),y=n*n;y--;y%n||putc(10,f))putc(rand()%94+32,f);}

Bu görev, yorum ve kötüye kullanım için oldukça fazla yer bırakıyor: rastgele yazdırılabilir bir ASCII karakteri çıkarıp, bunun {1} kümesinden boyutlarla rastgele boyutlandırılmış bir dikdörtgen olduğunu söylemek sorun değil mi? Muhtemelen değil. Her neyse, ben düz ile gittim rand()ama gerçekte muhtemelen %9denemek istiyorsanız ya da bir şey eklemek istersiniz. Linux kutumda yazabilmesi için dosyayı temizlemem gerekmedi (sanırım program çıkışında otomatik olarak temizleniyor), ancak standartlara uygun olması için temizlemeniz gerektiğine eminim, fflush(f);Burada sayıma eklemek için ücretsiz .

5. Haskell (100 karakter)

import Control.Arrow
import Data.List
import Data.Tuple
import Control.Applicative

h p c=head.filter(p c.snd).zip[1..]
g c=swap.(id***fst.h(==)c).h elem c.lines
f p c=g c<$>readFile p

Satırı bulmak ve sütun (arasında soyutlamak h) arasında tekrarlanan deseni seviyorum .

6. Lua (261 karakter)

function f(s,m,y,...)if s and m then for i,v in pairs(m)do
io.write(v,(" "):rep(#tostring(s[i])))end print()elseif s then
r=unpack f(s,{"",f(trouse,r(s))})f({f(nil,r(s))},s)elseif y then
return ("/%s%d\\"):format(m<y and"+"or"-",math.abs(m-y)),f(s,y,...)end end

Farklılıkları hesaplamak için çoklu getiri değerlerini ve özyinelemeyi kullanır. Örnek çıktısını tam olarak eşleştirmek bana birkaç karaktere mal oldu (her yere doğru miktarda boşluk ekleyerek).

7. Git (307 karakter)

func f(p string)[]int{var l[]string
g,_:=os.Open(p)
H,M,s,m:=0,0,bufio.NewScanner(g),[][]int{{-1,-1,11},{-1,0,12},{-1,1,1},{0,-1,9},{0,1,3},{1,-1,7},{1,0,6},{1,1,5}}
for s.Scan(){l=append(l,s.Text())}
for _,a:=range m{if l[2+a[0]*2][2+a[1]*2]!=' '{M=a[2]}
if l[2+a[0]][2+a[1]]!=' '&&(H==0||M!=a[2]){H=a[2]}}
return[]int{H,M}}

Muhtemelen çok daha fazla golf oynayabilirdi; Go'yu zar zor biliyorum.

8. CoffeeScript (+ node.js) (223 karakter)

f=(p)->
 a=require('fs').readFileSync(p).toString().split "\n"
 U=(i,j)->a[i]?[j]and a[i][j]==' '
 for l,i in a
  for c,j in l
   m =
    "/":[i+1,j-1]
    "\\":[i+1,j+1]
    a:[i+1,j]
   return if U.apply(0,m[c]or m.a)
 1

Zaten JS sahibi olduğumdan beri ucuz bir parça. Oh iyi. Cevabı belirtmek için sahte bir değer (yani undefined) veya gerçek bir değer (yani ) döndürür 1.

9. Bash (254 karakter)

f(){
curl https://news.ycombinator.com/rss|
awk -Ftitle '{OFS="h1\76\n\74h1";ORS="";print substr(OFS,4);print$2,$4,$6,$8,$10,$12,$14,$16,$18,$20,$22,$24,$26,$28,$30,$32,$34,$36,$38,$40;print substr(OFS,0,3)}'|
while read l;do echo ${l//$1/$2};done|
tee $3
}

(Okunabilirlik için borular eklendikten sonra yeni satırlar.) Shell ile yapılan kısıtlamaların etrafında çalışmak eğlenceliydi. Muhtemelen yapmanın daha iyi bir yolu olduğunu biliyorum $2,$4,$6,..., ama yine de geldiğim şey buydu.


1
Karakter sayımına ithalatı / dahil etmemenin bir nedeni var mı? Aksi takdirde, harika iş!
grc

1
Evet, bundan bahsetmeyi unuttum. Soru, “sadece işlevi sunmanız gerekir” i vurguladığından, standart kütüphaneleri dahil etme maliyetini göz ardı etmenin adil olacağını düşünüyordum.
FireFly

Delik 1 içinf=str.__mul__
Yılanlar ve Kahve

@SnakesandCoffee maalesef stdout'a yazdırmıyor. :(
FireFly

5

Puan: 1,394,4

996 karakter +% 40 ceza

1. Greenway - Haskell, 19 karakter

f c n=replicate n c

Kullanımı:

> f "hello" 5
["hello","hello","hello","hello","hello"]

2. Kaba - PHP, 72 karakter

<?
function f($t,$s,$n){for($i=-1;$n--;$i=strpos($t,$s,++$i));return$i;}

3. Köri - JavaScript 1.8, 45 karakter

f=function(x,y)function(){for(i=x();i--;)y()}

4. Spew - J, 43 karakter

f=:3 :'((33+?(1+?2#100)$1#93){a.)fwrites y'

Kullanımı:

f 'file.txt'

5. Hazine - J, 64 karakter

f=:4 :0
a=.freads x
b=.1+a i.u:10
c=.a i.y
d=.<.c%b
e=.d,c-b*d
)

Kullanımı:

'file.txt' f 'c'

6. Köprü - Python, 166 karakter

def f(l):J=''.join;t=map;r=lambda n:' '*len(n);s=t(str,l);o=['/%+d\\'%(y-x)for x,y in zip(l,l[1:])];print J(t(J,zip(t(r,s),o)))+'\n'+J(t(J,zip(s,t(r,o)+['users'*0])))

7. Zaman - Python, 205 karakter

def f(p):
 s=open(p).read();a=[s[:12],s[18:],s[11:15],s[15:18]];z=[0]*3
 for l in(0,1):
  for c in'/|\\':z[a[l].count(c)]=('|/'.find(c)+6*l)%12or 12
  z[a[2+l].count('-')]=3+6*l
 print[z[1]or z[2],z[2]*5%60]

Çizgilerin beş karakter genişliğinde boşlukla doldurulduğunu varsayalım. İkinci girinti seviyesi için sekmeler kullanır.

8. Kereste - Python, 190 karakter

def f(p):g=open(p).readlines();C='\\/ ';return all(1-[x+2>len(g[y])or g[y][x+1]in C,x<1or g[y][x-1]in C,0,' '==g[y+1][x]][C.find(g[y][x])]for y in range(len(g)-1)for x in range(len(g[y])-1))

9. Slacker - Python, 192 karakter

import urllib
def f(s,r,p):F=open(p,'w');d=urllib.urlopen('http://x.co/3WYmQ').read()[37:];o,c='\x3c\x3e';exec"d=d[d.find(o+'t')+7:];F.write(o+'h1'+c+d[:d.find(o)].replace(s,r)+o+'/h1'+c);"*20

URL kısaltıcı fikri için Tyzoid'e teşekkürler.


Python'unuzdan çok etkilendim, öğrenmek için çok fazla püf noktası.
AsksAnyway

1
@AsksAnyway Teşekkürler. Mutlaka kontrol edin bu daha önce yapmadıysanız olmadığını.
grc

1
Umm, elbette (1) J’de, değil mi? Belki başlık / örnek çalışmasını güncellemeyi unuttun.
FireFly

@FireFly Evet, benim hatam. Puanlamayı ve kullanımı güncelledim ancak asıl çözümü değiştirmeyi unuttum.
grc

4

Düzenleme: Sanırım bunu şu şekilde göndereceğim: toplam 1290, dil tekrarı yok.

Greenway, C # 53

void g(string s,int n){while(n-->0)Console.Write(s);}

# 1 ve # 9 ile dilleri değiştirmeye karar verdim. Yüzlerce sonra burada 30 kadar değer.

Pürüzlü Bir Yer, Python 59

Gerçekten kolay bir problem için bu kadar iyi bir dil kullanmamalıydım. Ayrıca, bu herhangi bir dilin fonksiyon ailesinin endeksinin bir parçası değil mi? Her zaman buna ihtiyacım var gibi görünüyor.

def f(t,s,n):return sum(map(len,t.split(s))[:n+1])+n*len(s)

Akşam Yemeği İçin Köri, Lisp 61

Üniversitedeki bir haftadan beri lisp'a dokunmadım ....

(defun f (c g)(loop for i from 1 to(funcall c)do(funcall g)))

Spew, Bash / shell utils 102

Benim bas-foo'mla başlamak hiç bu kadar iyi olmadı. Bununla sonra keman edeceğim. BTW daha hızlı bitmesini istiyorsanız, / dev / urandom konumuna getirin.

f(){
c=$(($RANDOM%9+9))
for i in $(seq $c);do
echo `tr -cd [:print:]</dev/random|head -c$c`>>$1
done
}

Hazine Avı, C 113

Muhtemelen C dostu sorunlardan biri. "Return iki tamsayı" yı bir argüman olarak bir dönüş dizisi göstericisi olarak yorumladım. Uyarılar? Hangi uyarılar? Bir int * bir DOSYA * = p kadar iyidir.

void f(int*p,int c,int*r){int*f,t;*r=r[1]=0;f=fopen(p,"r");while(c-(t=fgetc(f))){*r=t-'\n'?*r+1:0;r[1]+=*r?0:1;}

Kwai Nehri Köprüsü, Perl 207

Bunu yazarken perl öğrenmeye başladım. (Asla olmamasından daha iyi geç!) Ben regex kahramanları yapmak istemeye başladım, bu yüzden ipi köprünün her iki katmanı olarak oluşturdum, sonra iki farklı çizgiyi oluşturmak için boşluk değiştirmeli regexler kullandım.

sub f{@trouse=0..$#_-1;foreach $i(@trouse){$r.=sprintf("%d/%+d\\",$_[$i],$_[$i+1]-$_[$i])}$r.=$_[$#_]."\n";print$r=~s/(^|\\)(\d+)(\/|$)/$1.' 'x length($2).$3/egr;print$r=~s/(\/[+-]\d+\\)/' 'x length($1)/egr}

Golf Oynarken Zaman Uçuyor, Java 297

Java vecize yapmak için çok fazla şey yapabilirsiniz ... Saatin boşlukla dolduğunu varsayarsak, her satır 5 boşluk uzunluğundadır.

public boolean p(int r,int m,String s){int c[]={1,1,0,-1,-1,-1,0,1};return s.charAt(6*c[(r+6)%8]*m+14+c[(r)%8]*m)!=' ';}
public int[]time(String c){int h=9,m=0,t[]={3,5,6,7,9,11,12,1};for(int i=0;i<8;i++)if(p(i,1,c))if(p(i,2,c))m=i;else h=i;if(h==9)h=m;m=(t[m]*5)%60;h=t[h];return new int[]{h,m};}

Kereste! Javascript 201

Krom konsolunda çalışır. Başka hiçbir yerde garanti veremem = p. Çizgilerin, en uzun çizginin uzunluğuna kadar boşlukla doldurulmasını gerektirir. Bunun ASCII sanatının makul bir isteği olduğunu düşünüyorum.

function f(s) {s=s.split("\n")
d={};m={'/':-1,'\\':1};r=1
s.forEach(function(x){t={}
for(i=0;i<x.length;i++){if(x[i]!=' '){j=m[x[i]]?i+m[x[i]]:i
t[j]=1}}for(n in d){if(x[n]==' '){r=0}}d = t})
return r}

Slacker News, Ruby 197

def s(f,s,t)
l=60.chr
r=62.chr
IO.write(f,l+"h1"+r+URI.parse("https://news.ycombinator.com").read().split('mhead')[0,20].map{|x|x[0,x.length-19].split(r).last.sub(s,t)}.join(l+"/h1#{r+l}h1"+r))
end

Sadece bu harika bir cevap değil, aynı zamanda harika bir okuma için yapar. Aferin!
Dan Prince

Teşekkürler, Ruby ve C # 'yı değiştirmem biraz daha az ilginç olduğunu hayal ediyorum. Artık
ağrıyor. Net'in

4

Birkaç dile birkaç dokunuşla eğlendim ...

Gereksiz boşlukları / yeni satırları kaldırdıktan sonra elde edilen ancak sayıları çoğunlukla okunaklı tutan karakter sayısı. Soru, fonksiyonların ve programların bir karışımı olduğu için, sadece gerektiğinde fonksiyonun gövdesini dahil ettim.

Toplam ~ 1719

1- Python (~ 20)

def f(c, n):
    print c*n

2- C (~ 109)

int f(char*t,char*s,int n){int i;char*q=t;int l=strlen(s);for(i=0;i<n;++i){t=strstr(t, s)+l;}return(t-q-l);}

Okunabilir sürüm:

#include <string.h>

int f(const char *t, const char *s, int n)
{
  int i;
  char *start = t;
  int l = strlen(s);
  for(i = 0; i < n; ++i)
  {
    t = strstr(t, s) + l;
  }
  return(t - start - l);
}

3- Javascript (~ 56)

function(x, y) {return function() {for(i=0; i<x(); i++) y();}}

4- Rexx (~ 136)

f: Procedure
  Parse arg p
  w = random(1, 9)
  h = random(1, 9)
  Do y = 1 to h
    Do x = 1 to w
      Call CHAROUT p, d2c(random(32, 99))
    End
    Call LINEOUT p, ""
  End

5- Scala (~ 290)

def f(p: String, c: Char) {
  def sc(w: String, c: Char, x: Int, y:Int ): Boolean =
    {
      if(w.isEmpty) false else
      if(w.head==c) {println(x, y); true} else sc(w.tail, c, x+1, y)
    }
  def sr(w: Array[String], c: Char, x: Int, y: Int)
  {
    if(!sc(w.head, c, 0, y)) sr(w.tail, c, 0, y+1)
  }
  sr(io.Source.fromFile(p).mkString.split('\n'), c, 0, 0)
}

6- C ++ (~ 355)

void b(list<int> l) // trouser+s
{
  auto i = l.begin();
  auto j = i;
  j++;
  list<int> d;
  while(j!=s.end()) d.push_back(*j++ - *i++);
  j = d.begin();
  ostringstream o[2];
  for(auto i : l)
  {
    while(o[0].tellp()!=o[1].tellp()) o[1] << " ";
    o[1] << i;
    if(j != d.end())
    {
      while(o[0].tellp()!=o[1].tellp()) o[0] << " ";
      o[0] << "/" << (*j>=0 ? "+" : "") << *j++ << "\\";
    }
  }
  cout << o[0].str() << endl << o[1].str() << endl;
}

7- Git (~ 301)

Bunun saatin doldurulmasını gerektirdiğine dikkat edin (yani tüm çizgiler aynı uzunluktadır).

func f(p string)(h int,m int) {
  var a=[8]int {0, 2, 4, 12, 16, 24, 26, 28}
  var b=[8]int {7, 8, 9, 13, 15, 19, 20, 21}
  var d=[8]int {11, 12, 1, 9, 3, 7, 6, 5}
  h=9
  c, e := ioutil.ReadFile(p)
  if e==nil {
    for i:=range a {
      if c[a[i]]>32 {
        m=i
      }
    }
    for i:= range b {
      if c[b[i]]>32 {
        if i!=m {
          h=i
        }
      }
    }
    if h==9 {
      h=m
    }
    h=d[h]
    m=d[m]*5%60
  }
  return
}

8- Yakut (~ 259)

def f(p)
  a,b = File.read(p).split(/\n/).reverse,Hash.new(1)
  a.each_with_index {
    |l,i|
    l.split("").each_with_index {|k,j|
      case k
        when ' '
          b[j] = 0
        when '/'
          b[j] = b[j]|b[j-1]
        when '\\'
           b[j] = b[j]|b[j+1]
      end
      unless k==' '
        if b[j]==0
          return 0
        end
      end
    }
  }
  return 1
end

9- bash / Unix kesmek (~ 193)

wget -qO - http://news.ycombinator.com/rss | tr "\074\076" "\n" | grep -B1 /title | awk 'NR % 3 == 1' | head -21 | tail -20 | sed 's/$1/$2/' | awk '{ print "\074h1\076" $0 "\074/h1\076"}' > $3

1
Güzel, ama # 9'unuz bu delik için kurallara aykırı olan köşebentleri kullanıyor.
Rik Smith-Unna

@RichardSmith: Teşekkürler ... Bunu düzeltmem gerekecek.
Guy Sirton,

1
# 3 deliğine dikkat edin, her işlev çağrısında x () 'in aynı sayıyı döndüreceğinin garantisi yoktur!
Tyzoid

@Tyzoid: Onu yakalamayı düşünüyordum ... Haklısın, bu benim spekülasyonum / yorumum.
Guy Sirton

2

Aslında golf oynamak için değil, fakat dilin daha fazla sevgiye ihtiyacı olduğu için bazı Tcl'ler:

set holes {
    greenway
    rough
    curry
    spew
    hunt
    bridge
    time
    timber
    slacker
}

proc greenway {c n} {
    puts [string repeat $c $n]
}

proc rough {t s n} {
    set i [string first $s $t] ;# a bit wet
    while {[incr n -1]} {
        incr i [string first $s $t $i]
    }
    return $i
}

proc curry {x y} {
    set n [uplevel 1 $x]
    set body [string repeat "$y;" $n]
    return [list apply [list args $body]]
}

proc spew {p} {
    set w [expr {int(rand()*80)}]
    set h [expr {int(rand()*80)}]
    set f [open $p w]
    for {set y 0} {$y<$h} {incr y} {
        set ln ""
        for {set x 0} {$x<$h} {incr x} {
            append ln [format %c [expr {int(rand()*96+32)}]]
        }
        puts $f $ln
    }
    close $f
}

proc hunt {p c} {
    set f [open $p r]
    set y 0
    while {[gets $f line]>=0} {
        set x [string first $f $c]
        if {$x != -1} {
            return [list $x $y]
        }
        incr y
    }
}

proc bridge {l} {
    set l [lassign $l m]
    set top ""
    set btm $m
    foreach n $l {
        set t "/[expr {$n>$m?"+":""}][expr {$n-$m}]\\"
        append top "[string repeat \  [string length $m]]$t"
        append btm "[string repeat \  [string length $t]]$n"
        set m $n
    }
    # trousers
    return $top\n$btm
}

proc time {p} {
    set f [open $p r]
    while {[gets $f line] >= 0} {
        set line [format %-.5s $line]
        lappend c [split $line {}]
    }
    close $f
    foreach {x y h} {
        -1 -1  0
         0 -1  1
         1 -1  3
         1  0  5
         1  1  6
         0  1  7
        -1  1  9
        -1  0 11
    } { 
        set 2x x; incr 2x $x
        set 2y y; incr 2y $y
        if {[lindex $c $2y $2x] != " "} {
            set hh $h
        } elseif {[lindex $c $y $x] != " "} {
            set mm $h
        }
    }
    if {![info exists $mm]} {
        set mm $hh
    }
    set mm [expr {$mm*5}]
    if {$hh == 0} {set hh 12}
    list $hh $mm
}

proc timber {p} {
    set f [open $p r]
    set must {}
    while {[gets $f line] >= 0} {
        set line [format %-.5s $line]
        foreach i $must {
            if {[string index $line $must] eq " "} {
                close $f
                return false
            }
        }
        set must {}
        set i 0
        foreach c [split $line] {
            switch $c {
                "\\" {lappend must [expr {$i+1}]}
                "/"  {lappend must [expr {$i-1}]}
                " "  { }
                default  {lappend $must $i}
            }
            incr i
        }
    }
    close $f
    return true
}

proc slacker {s r p} {
    package require tdom
    set f [open $p w]
    set h [::http::geturl https://news.ycombinator.com/]
    set html [string trim [::http::data $h]]
    ::http::cleanup $h
    set dom [dom parse $html]
    lappend map , [string index $html 0]
    lappend map . [string index $html end]
    set root [$dom documentElement]
    foreach n [$root selectNodes {//td[@class=title]/a}] {
        set x [$n text]
        set x [string map [list $s $r] $x]
        puts $f [string map $map ",h1.$x,/h1."]
    }
    close $f
}

Çoğunlukla denenmemiş, çünkü bu procs'ları yarım saatte yazmak, golf kodunu doğru bir şekilde tasarlamaya çalışmaktan çok daha ilginç. Keyfini çıkarın!


2

Bunların sadece 1 / 2'si üzerinde çalışmaya zaman ayırdı. Onları bir işlev biçiminde istiyorsun, bir astar değil. Yani bunların hepsi fonksiyonlar. Fonksiyonun altındaki test kodu. Perl'de.

Yeşil Yol:

sub f{print$_[0]x$_[1]}

#test
&f("abc",5);

Kaba:

sub f{$i=-1;$n=$_[2];do{$i=index$_[0],$_[1],$i+1;$n--}while($n>0 && $i>-1);print$i+1}

#test
&f("abcefgacefgabcefgabcefgabcefg","cef",4);

Köri:

use Sub::Curried;
curry f($x,$y){$q=0;foreach(1..&$x){$q=&$y};return $q;}

#test
sub fy { return 1;}
sub fx { return 10;}
print&f(\&fx,\&fy);

spew:

use Crypt::PRNG qw(random_string_from irand);
sub f{open($o,">$_[0]");$m=(irand)%10+1;map{printf $o "%s\n",random_string_from(['A'..'z'],$m)}(1..$m)}

#test
&f('/tmp/t');

Hazine:

sub f{open($i,"<$_[0]");$x=$y=0;@l=<$i>;while($y<=$#l){$x=1+index$l[$#l-$y],$_[1];@a=($x,$y+1)if($x);$y++;}return\@a}

#test
@b=@{&f('/tmp/t','f')};
print join(",",@b);

Yarın 6-9 üzerinde çalışacağım.


2

WIP. Not, karakter sayıları '\n'vewc

[1 Greenway] Mindf * ck, 54 karakter

>>+[+>,-]<[<]>,<<++++++++[>>------<<-]>>[>[.>]<[<]>-]

Kullanım: Kod yazıldıktan sonra dizginizi girin ve dizginizi bir ^ a (ctr + a) ile sonlandırın, ardından hemen ardından numaranızı girin.

Bir uyarı: verilen sayı sadece 0-9 arasında olmalıdır (eğer daha büyük bir tane istiyorsanız, girdiğiniz karakterin ascii değeri-48 olarak kullanılacaktır n)

Ekran görüntüsü:

Ekran görüntüsü

[Akşam yemeği için 3 köri] Javascript, 59 karakter

function f(x,y){return function(){n=x();while(--n!=0)y();}}

[4 Spew] BASH, 56 karakter

f(){ dd if=/dev/urandom of="$1" count=$((RANDOM%30+2));}

[7 Golf Oynarken 7 Uçar] C, 334 Karakter (Makro tanımı ile 412)

#define E(A) else if(s[A]==
#define G(A) else if(A)m=
#define M(A) &&m!=A)h=A
int (*f(char* s)){short h=0,m=0;if(s[0]=='\\')m=11;G(s[2]=='|')12;G(s[4]='/')1;G(s[11]=='-')9;G(s[15]=='-')3;G(s[22]=='/')7;G(s[24]=='|')6;G(s[26]=='\\')5;if(s[7]=='\\'M(11);E(8)'|'M(12);E(9)'/'M(1);E(12)'-'    M(9);E(14)'-'M(3);E(18)'/'M(7);E(19)'|'M(6);E(20)'\\'M(5);int* i=malloc(sizeof(int)*2);i[0]=(h==0)?m:h;i[1]=m*5;return i;}

Not: bu işlev, iki boyutlu bir tamsayı dizisine bir gösterici döndürür, şöyle biçimlendirilir: {3, 55} (saatin 3, saat 11 üzerindeki saati için)

[9 Slacker News] PHP, 246 karakter

function f($a,$b,$c){$t=file_get_contents("http://x.co/3WQoY");$g=explode('d class="t',$t);$f=fopen($c,"w");for($i=1;++$i!=count($g)-10;){$e=explode("\x3e",$g[$i]);fwrite($f,"\x3ch1\x3e".str_replace($a,$b,s    ubstr($e[2],0,-3))."\x3c/h1\x3e\n");}}

BASH + AWK’da ayrı / orijinal uygulama, 218 karakter

f(){ wget -qO- x.co/3WQoY|grep "e_"|awk '{n=split($0,a,"d class=\"t");for(q=1;++q!=n-10;){split(a[q],b,"\x3e");m=substr(b[3],0,index(b[3],"\x3c/")-1);gsub("'"$1\",\"$2"'",m);print "\x3ch1\x3e"m"\x3c/h1\x3e"    }}'>"$3";};

2

1654

1. Greenway (Haskell - 37)

f x y=do print(concat(replicate x y))

2. Kaba Bir Yerde (Mathematica - 43)

f[t_,s_,n_]:=StringPosition[t, s][[n+1, 1]]

3. Akşam Yemeği Körili (Lisp - 58)

(defun f(x y)(lambda()(dotimes(c(funcall x))(funcall y))))

4. Spew (Matlab / Oktav - 83)

function x(f)
    save f arrayfun(@char,randi(255,randi(255),randi(255)))
endfunction

5. Hazine Avı (C - 176)

char* f(char* s,char c){FILE* n;char* r;int i=0,j=0,k=0;n=fopen(s,"r");while(!feof(n)){k=fgetc(n);if(k==(int)c)break;j++;if(k=='\n'){i++;j=0;}}sprintf(r,"%d %d",i,j);return r;}

6. Kwai Nehri Üzerindeki Köprü (Yakut - 192)

def f(l)
    trouse="\n%s"
    rs = l[0].to_s
    for i in 1..l.length-1
        s = "/%+d\\"%(l[i]-l[i-1])
        print " "*l[i-1].to_s().length+s
        rs += " "*s.length+"%d"%l[i]
    end
    puts trouse%rs
end

7. Golf Oynarken Zaman Uçuyor (Node.js - 406)

function f(n){var g,h,m,q;fs.readFile(n,'ascii',function(e,d){l=d.split('\n');g=function(x,y){try{return l[x][y].trim()&&1;}catch(e){return 0;}};h=g(0,0)*11||g(0,2)*12||g(0,4)*1||g(2,0)*9||g(2,4)*3||g(4,0)*7||g(4,2)*6||g(4,4)*5;m=(g(1,1)&&h!=11)*55||(g(1,2)&&h!=12)*0||(g(1,3)&&h!=1)*5||(g(2,1)&&h!=9)*45||(g(2,3)&&h!=3)*15||(g(3,1)&&h!=7)*35||(g(3,2)&&h!=6)*30||(g(3,3)&&h!=5)*25||h*5%60;return [h,m];});}

8. Kereste! (Git - 329)

func f(p string)bool{
    x,_:=ioutil.ReadFile(p)
    b:=strings.Split(string(x),"\n")
    for j:=0;j<len(b)-2;j++{
        for i:=0;i<len(b[j]);i++{
            r,o:=1,0
            switch string(b[j][i]){
            case " ": continue
            case "/": r,o=0,-1
            case "\\": r,o=0,1
            }
            if i+o<len(b[j]) && b[j+r][i+o]==' ' {
                return false
            }
        }
    }
    return true
}

9. Slacker Haberleri (Python - 330)

def f(s,r,p):
    w=urllib2.urlopen('http://news.ycombinator.com')
    a=[l.get_text() for l in BS(w).body("a") if l.find_parent("td", class_="title")]
    t=lambda x:u"\x3c{}\x3e{}\x3c/{}\x3e".format(x,'{}',x)
    m=''.join(t("h1").format(l.replace(s,r)) for l in a[:20])
    with open(p,'w') as h:
        h.write(t("html").format(m).encode('utf8'))

1

Ben bir hileciyim ve henüz 9 delik oynamam . Bununla birlikte, işte Perl'deki (149 karakter) 8 numaralı “Timber” çözümü.

İş arkadaşlarımdan biri bunu işyerinde bir meydan okuma olarak ortaya koydu. Şimdiye kadarki en düşük çözümden beri, özellikle benimle eğleniyorduk!

Kurallarımız yeni çıktının çıktısını alan trueveya falseizleyen tek başına bir senaryo olması STDOUTve “shebang” a uygun olmadığına dairti.

Aşağıda “küçültülmüş” bir çözüm var. Ben de bir “tahammül özünü olmayan“küçültülmüş”kod & my yaklaşımın ardındaki akıl yürütme (genellikle kıvrıla uzunluğunda) açıklamalar içeren aynısının”.


$r=tru;open F,pop;while(<F>){y/0/6/;s/^|\s|$/0/g;s#\\(?=0)|(?<=0)/|[^\\/0]#6#g;@n=split//;for(0..@n){!$n[$_]&&$l[$_]==6?$r=fals:1}@l=@n;}print$r,'e
'

0

Meh rekabet kurallarına göre değiştirmek için çok tembelim, ama iyi çalışıyor ...

from numpy import *
import sys

def greenway(c,n):
    print c*n

def somewhereintherough(t,s,n):
    i=-1
    count=0
    while(count<n):
        i = t.find(s,i+1)
        count+=1
    return i

def curryfordinner(x,y):
    def g():
        for i in range(x()):
            y()
    return g

def spew(p):
    f = open(p,'w')
    n = random.randint(1,28)  
    for i in range(n):
        if(i>0):
            f.write('\n')
        str1 = ''.join([chr(random.randint(32,126)) for _ in range(n)])
        f.writelines(str1)
    f.close()
    print "Grid size: ",n,'x',n

def treasurehunt(p,c):
    f = open(p,'r')    
    arr = f.readlines()
    n = len(arr)
    f.close()
    f = open(p,'r')
    found=False
    for i in range(n):
        line = f.readline()
        #print line
        loc = line.find(c)
        if(loc!=-1):
            print c,"found in",p,"at",i,loc
            found=True
            break
    if(not found):
        print c,"not in",p
    f.close()

def bridgeontheriverkwai(l):
    str_list = []
    for i in range(len(l)-1):
        sign = '+' if l[i+1]-l[i]>0 else '-'
        str_1 = '/'+sign+str(abs(l[i+1]-l[i]))+'\\'
        sys.stdout.write(' '*(len(str(l[i])))+str_1)
        str_list.append(str_1)
    print
    for i in range(len(l)):
        if i<len(l)-1:
            print str(l[i])+' '*(len(str_list[i])-1),
        else:
            print l[i]

def timeflieswhenyoureplayinggolf(p):
    f = open(p,'r')
    #clock = [[0]*5,[0]*5,[0]*5,[0]*5,[0]*5]
    line1 = f.readline()
    line2 = f.readline()
    line3 = f.readline()
    line4 = f.readline()
    line5 = f.readline()
    h = 0
    m = 0
    if line1.find('\\')!=-1:
        h = 11
        m = 55
    elif line1.find('|')!=-1:
        h = 12
        m = 0
    elif line1.find('/')!=-1:
        h = 1
        m = 5
    elif line5.find('/')!=-1:
        h = 7
        m = 35
    elif line5.find('|')!=-1:
        h = 6
        m = 30
    elif line5.find('\\')!=-1:
        h = 5
        m = 25
    elif line3[4]=='-':
        h = 3
        m = 15
    elif line3[0]=='-':
        h = 9
        m = 45

    if line2[1]=='\\' and h!=11:
        m = 55
    elif line2[3]=='/' and h!=1:
        m = 5
    elif line3[1]=='-' and h!=9:
        m = 45
    elif line3[3]=='-' and h!=3:
        m = 15
    elif line4[1]=='/' and h!=7:
        m = 35
    elif line4[3]=='\\' and h!=5:
        m = 25
    elif line2[2]=='|' and h!=12:
        m = 0
    elif line4[2]=='|' and h!=6:
        m = 30

    print h,m


def timber(p):
    f = open(p,'r')
    linecount=0
    line_size = 0
    line = f.readline()
    while(line):
        linecount+=1
        line_size = max(line_size,len(line)-1)
        line = f.readline()
    block = array([[0]*line_size]*linecount)
    f.seek(0)
    for i in range(linecount):
        line = f.readline()
        for j in range(len(line)-1):
            if(line[j]==' '):
                block[i][j]=0
            elif(line[j]=='/'):
                block[i][j]=1
            elif(line[j]=='\\'):
                block[i][j]=2
            else:
                block[i][j]=3
    f.close()
    for i in range(linecount):
        for j in range(line_size):
            if(block[i][j]==1 and j!=0 and block[i][j-1]==3):
                block[i][j]=4
        for j in range(line_size-1,0,-1):
            if(block[i][j]==2 and j!=line_size-1 and block[i][j+1]==3):
                block[i][j]=4
    for i in range(linecount):
        for j in range(line_size):
            if(block[i][j]==3 and i<linecount-1 and block[i+1][j]==0):
                print "Unsafe Structure"
                return
    print "Safe Structure"

def slackernews(s,r,p):
    import urllib2
    response = urllib2.urlopen('https://news.ycombinator.com')
    html = response.read()
    titles_list = []
    ix = -1
    count = 0
    index_list =  []
    while(count<21):
        ix = html.find("<td class=\"title\"",ix+1)
        index_list.append(ix)
        count+=1
    for i in range(len(index_list)-1):
        line = html[index_list[i]:index_list[i+1]]
        line = line[line.find("a href"):]
        start = line.find('>')
        end = line.find('<')
        titles_list.append(line[start+1:end])
    f = open(p,'w')
    for title in titles_list:
        title = title.replace(s,r)
        f.write('<h1>'+title+'</h1>')
    print "Done writing, Check : ",p
    f.close()


greenway('test!',2)
s='this is a cat. this is a dog. dog is an animal, animal is a beast in disguise.'
t='is'
ix=somewhereintherough(s,t,8)
print ix,s[ix:]
def x():
    return 4
def y():
    print ' !y_called! '
g = curryfordinner(x,y)
g()
spew('test.dat')
treasurehunt('test.dat','a')
bridgeontheriverkwai([-7,-22,6,9])
timeflieswhenyoureplayinggolf('clock.dat')
timber('block.dat')
slackernews('a','b','slacker.html')

0

İlk kod golf! (Hala devam eden bir çalışma ...)

1. Greenway

Dil: Python 3.2.3
Dosya boyutu: 23 bayt
Kod:

def f(c,n): print(c*n)

3. Akşam yemeği için köri

Dil: Python 3.2.3
Dosya boyutu: 64 bayt
Kod:

def f(x,y):
    def g():
        for i in [1]*x(): y()
    return g

Doğru anladıysam, aynı dili iki kez kullanmanız için puan kazanacaksınız. Sadece eğlence için yapıyorsanız, sorun değil.
Hosch250,

@ user2509848 9 golf yetenekli dil bilmiyorum, bu yüzden bazılarına yerleştirilmem gerekecek. :( Başları için sağol, yine de!
apnorton

Ruby, Perl, Golfscript ve Mathematica genellikle kazanır
Hosch250

Sadece C ++ 'ı biraz Java ve daha az Python 3.2.3 ile tanıyorum. HTML ve CSS dışında başka bir şey yok (ki yine de kullanılamaz (CSS)).
Hosch250,

0

Burada devam eden başka bir iş var, ve işteyim, o yüzden geri döneceğim.

Ruby'de Greenway (14 karakter, #alligator ile 24 ), ile araf.(c, n)

f=->c,n{p c*n}#alligator

Ekran görüntüsü

Yeşil Yol

CoffeeScript’te Rough’da bir yerde (38 karakter)

f=(t,s,n)->t.split(s,n).join(s).length

Ekran görüntüsü

Kaba Bir Yerde

JavaScript'te Akşam Yemeği için Körili (54 karakter)

f=function(x,y){return function(){for(i=x();i--;)y()}}

Ekran görüntüsü

Akşam yemeği için köri

PHP'de Spew (111 karakter)

Bu short_open_tagPHP yapılandırma dosyasında etkin olmasını gerektirir . Aksi takdirde, açılış sınırlayıcı <?php, @sembollerin tırnak PHP_NOTICEiçine alınmasını önlemek ve atılan değişkeni randaçıkça bildirmemek için atılan hataları susturmak için kullanılır $s. Bu, her iki eksende 4 ile 30 karakter arasında ascii karakterlerinden oluşan bir kare ızgara oluşturur.

<? @$r=rand;$x=$r(4,30);for($i=$x*$x;--$i;){@$s.=$i%$x!=0?chr($r(33,126)):"\n";}file_put_contents($argv[1],$s);

Ekran görüntüsü

kusmak


Kullandığın terminal ne?
Alexander Craggs,

0

1. Greenway (Python 2: 20)

def a(x,n):print x*n

Örnek giriş: a("asdf",3)-> string ( asdfasdfasdf)

2. Kaba Bir Yerde (Python 2: 47)

def b(t,s,n):return len(s.join(t.split(s)[:n]))

Örnek giriş: b("1,2,333,4,5,6",",",3)-> int (7)

3. Akşam yemeği için köri (Javascript: 61)

function c(a,b){d=a();return function(){while(d){d--;b()}};};

Örnek giriş: function z(){ return 3; }; function y(){ console.log( '1' ) }; myfunc = c(z,y); myfunc();-> string(1)konsola giriş yapar ... 3 defa.

Teknik özelliklere göre, cbir işlev döndürür ve aslında bu işlevi yerine getirmez.

4. Spew (C ++ 11: 171)

#include<fstream>
using namespace std;void d(string f){ofstream o;int i=rand()%10;int j=rand()%10;o.open(f);for(int x=0;x<i;x++){for(int y=0;y<j;y++){o.put(rand()%256);}}}

Bunu gerçekten test etmedim, ama çalışması gerekiyor.


0

Bazı girinti, okunabilirlik için bozulmadan bırakıldı, ancak karakter sayılırken çıkarıldı. Toplam 1227 civarındadır . Ya da değil, bir problemi unuttum. 1486 1465 karakter.

1. MIPS ASM (55 karakter)

#a0 : the address of the null terminated string.
#a1 : the repetition count.
f:
li $v0,4
syscall
addi $a1,$a1,-1
bne $a1,$0,f
jr $ra

2. Şema (52 karakter)

(define (f t s n)(list-ref(string-search-all s t)n))

3. F # (39 karakter)

let f x y=fun()->for i in 1..x() do y()

4. Powershell (133 karakter)

Function f($p){
$r=(Get-Random)%100
$z="";for($b=$r*$r;$b -gt 0;$b--){$z+=[char](33+(Get-Random)%94);if($b%$r -eq 1){"$z">>$p;$z=""}}
}

5. C ++ ( 184 152 karakter)

#include <istream>
#include <string>
int*f(std::string p,char c){int*x=new int[2]();std::ifstream i(p);for(;i>>p;x[1]++)if((x[0]=p.find(c))>0)return x;}

6. C # ( 291 282 karakter)

static void f(List<int> l)
{
    var z = "";
    var o = l[0].ToString();
    for (int j = 1; j < l.Count;j++)
    {
        int p = l[j-1];
        int i = l[j];
        var q = "/"+(i-p<0?"":"+")+(i-p).ToString()+"\\";
        o += new String(' ',q.Length)+i.ToString();
        z+=new String(' ',p.ToString().Length)+q;
    }
    Console.Out.Write(z+"\n"+o);
}

7. Haskell ( 318 306 karakter)

Haskell'ı denemek için bir bahane arıyordum. Rakamların kombinasyonlarını kullanarak pozisyonların listesini oluşturarak zekice olduğumu düşünmüştüm; Oh iyi. Kod iğrenç ama yine de yazmak eğlenceliydi.

düzenleme: Sabit böylece doğru dakika verir.

w i s=[s!!(j!!1)!!(j!!0)/=' '|j<-mapM(const i)[1,2],j/=[2,2]]
k[e,r](i,o,n)|i&&o=[e, n]|i&&not o=[n, r]|not$o||i=[e, r]
g s=let[h,m]=foldl k[0,0](zipWith3(\x y z->(x,y,z))(w[1,2,3]s)(w[0,2,4]s)[11,9,7,12,6,1,3,5])in let u=mod(m*5)60 in if h==0 then[m,u]else[h,u]
f p = do
  s<-readFile p
  return$g$lines s

8. Lua (259 karakter)

Dizelerin dizi stili indekslemesini desteklemediğini görünce şaşırdım, bu yüzden altını kullanmak zorunda kaldım.

function f (p)
    s=' ' g=''
    for l in io.open(p):lines() do l=l..s:rep(#g-#l) for v=1,#g do
        d=({['/']=v-1,['\\']=v+1,[s]=0})[g:sub(v,v)] or -1
        if l:sub(v,v)==s and (d<0 or d>0 and g:sub(d,d)==s and l:sub(d,d)==s) then
            return false
        end
    end g=l end
    return true
end

9. Python (187 karakter)

URL kısaltıcı için grc / Tyroid'e teşekkürler.

import urllib2
def f(s,r,p):[open(p,'a').write('\074h1\076'+i.split("\074")[0].replace(s,r)+'\074/h1\076') for i in urllib2.urlopen("http://x.co/3WYmQ").read().split("\074title\076")[2:]]
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.