Nhân tố trong haiku!


60

Bài tập, nhiệm vụ

Tạo một chương trình tính toán giai thừa của một số không sử dụng các hàm giai thừa tích hợp. Dễ dàng? Điều hấp dẫn là bạn phải viết toàn bộ chương trình của mình (bao gồm cả kiểm tra nó) ở dạng haiku .

Không đủ việc
Bạn có thể sử dụng bao nhiêu haikus mà bạn cần, nhưng khi phát âm, chúng phải tuân theo định dạng âm tiết 5-7-5.

Chấm điểm

Đây là một , vì vậy bạn phải nhận được nhiều hộ nhất để giành chiến thắng. Chương trình của bạn phải bao gồm ít nhất một haiku đầy đủ và tất cả haikus phải được hoàn thành.

Khi đọc mã, dòng đầu tiên của mỗi haiku sẽ có 5 âm tiết, dòng thứ hai sẽ có 7 và dòng thứ ba sẽ có 5.


5
Âm thanh giống như một sự phù hợp hoàn hảo cho một cái gì đó được viết trong Shakespeare: shakespearelang.sourceforge.net/report/shakespeare/
Kẻ

2
Có vẻ như hầu hết các câu trả lời đều bỏ qua " bao gồm cả việc kiểm tra nó ".
Anko

5
Tôi thích cách bạn liên kết đến một trang web nói chính xác điều quan trọng đối với Haiku là (a) kiru và (b) một tài liệu tham khảo theo mùa và sau đó chỉ yêu cầu phần nhiều hoặc ít tùy chọn để đếm mora (hoặc âm tiết trong một ngôn ngữ không 't thực sự có mora . 😸
Christopher Creutzig

1
Tôi đồng ý với @ChristopherCreutzig - sẽ thú vị hơn nhiều nếu chúng tôi phải đảm bảo việc tham khảo và cắt theo mùa. Đáng buồn thay, chúng ta thường bỏ qua những nguyên tắc cơ bản của haiku. Dường như với tôi rằng thenhoặc dấu câu có thể hỗ trợ trong việc cắt. Đối với kigo , không chắc lắm ...
Darren Stone

Tôi không phải là chuyên gia của Haikus, nhưng chắc chắn có một số chất lượng trữ tình được mong đợi. Cho đến nay tôi chỉ thấy một câu trả lời có bất kỳ.
SebastianH

Câu trả lời:


54

Smalltalk

(đánh giá trong một không gian làm việc; mở hộp thoại, yêu cầu số và in kết quả trên thiết bị xuất chuẩn):

"in" "this" 'poem,' "you" "must"
"pronounce" "characters" "like" "these:"
"return(^)," "and" "times(*);" "please".

"but" 'never' "in" "here"
"tell" "anyone" "about" "those"
"few" "parentheses".

"otherwise" "these" "words" 
"are" "stupid" "and" "this" "coded" 
"rhyme" "is" "wasted" Time.

"let" "us" "now" "begin" 
"by" "defining," "in" Object
"and" compile: "the" "rhyme:"

'fac: "with" arg"ument"
"to" "compare" arg <"against" 2 ">"
"and" ifTrue: [ ^"return"

"["1] "or" ifFalse: "then"
["return"^ arg *"times" "the" "result"
"of" ("my"self ")getting"

"the" fac:"torial"
"of" "the" "number" arg "minus"-
1 "[(yes," "its" "easy")]'.

("Let" "me" "my"self "ask"
"for" "a" "number," "to" "compute"
"the" fac:"torial"

("by" "opening" "a" 
"nice" Dialog "which" "sends" "a"
request: "asking" "for"

'the Number to use' 
"(which" "is" "(" "treated" ) asNumber)
"then" print "the" "result".

Tôi đã cố gắng mang lại một số suy tư ("trong bài thơ này") và kigo là tốt. Ngoài ra, một số yếu tố vần điệu phương Tây được bao gồm (xin vui lòng-> những, thời gian-> vần); tuy nhiên, không phải là người bản ngữ của tiếng Nhật, cũng không phải tiếng Anh, tha thứ cho bất kỳ chi tiết phong cách nào ;-)


BTW: Để thử trong Squeak / Pharo, thay thế "Hộp thoại" bằng "FillInTheBlankMorph" và "in" bằng cách "kiểm tra".
blabla999

40

Haskell

fact :: Int -> Int          -- fact is Int to Int
fact x = product (range x)  -- fact x is product range x
range x = [1..x]            -- range x is 1 [pause] x

Thời gian giáo dục của Haskell:

  • Các range xchức năng tạo ra một danh sách các số nguyên từ 1 lên đến giá trị của x.
  • Các fact xchức năng sẽ nhân tất cả các giá trị của danh sách range xvới nhau để tính toán kết quả.
  • Dòng đầu tiên nói rằng facthàm lấy một số nguyên và trả về một số nguyên.

3
thiếu điểm nào đó @JanDvorak?
jwg

2
Hình thức qua chức năng. Nếu đây là chương trình thực sự, tôi chắc chắn sẽ giải thích cho trường hợp tràn :)
danmcardle

7
range x is 1 to xlà 6 âm tiết mặc dù
David Z

9
@David Tôi đọc nó là "phạm vi x là một [tạm dừng kịch tính] x".
Anko

3
Tôi thực sự khuyên bạn nên học Haskell nếu bạn muốn học cho bạn một Haskell.
danmcardle

40

Java - 2 haikus

protected static
        int factorial(int n) {
    if (n == 0) {
        return n + 1;
    } return factorial(n
            - 1) * n;}

Ngay cả khi câu hỏi không phải là , tôi vẫn thường tự mình đánh gôn. Trong trường hợp này, tôi đã đánh số lượng haikus.

Tôi phát âm nó như vậy:

bảo vệ tĩnh
int factorial int n
nếu n bằng 0

return n cộng với một nhân tử
trở về n
trừ đi một lần n


Chương trình kiểm tra:

class Factorial {                                    // class Factorial
    public static void main(String[]                 // public static void main string
            command_line_run_args) {                 // command line run args

        int i = 0;                                   // int i is zero
        while (7 != 0)                               // while seven is not zero
            System.out.                              // System dot out dot

                    println(i + "!"                  // print line i plus not
                            + " = " + factorial(     // plus is plus factorial
                            i += 1));}               // i plus equals 1

    protected static
            int factorial(int n) {
        if (n == 0) {
            return n + 1;
        } return factorial(n
                - 1) * n;}}

Lưu ý rằng chương trình này bắt đầu xuất ra 0nhanh; đó là kết quả của tràn. Bạn có thể dễ dàng có được số đúng lớn hơn bằng cách thay đổi từng intđến long.

Phát âm chuẩn cho System.out.printlnpublic static void main(String[] args)được phản ánh trong chương trình.


2
Xin lỗi cho unupvote; Tôi muốn tăng cường giải pháp Haskell
John Dvorak

26

APL

factorial←{×/⍳⍵}

Factorial là
sản phẩm của Naturals
lên đến omega


1
+1 cho <- hoạt động như một kireji, cho dù bạn biết đó là những gì bạn đang làm hay không.
Jonathan Van Matre

@JonathanVanMatre LOL thậm chí không phải là một đầu mối! Tôi đã sử dụng một từ điển để đếm các âm tiết mặc dù (không phải là người bản ngữ.) Tôi đã thêm một dấu gạch ngang để hiển thị kireji.
Tobia

2
+1 vì cũng đơn giản và uyển ngữ trong tiếng Anh.
imallett

Đơn giản, nhưng đẹp.
FUZxxl

1
Lưu ba byte: factorial←×/⍳"lên đến đầu vào".
Adám

17

Shakespeare

The Products of Love:
A haiku tragedy with
mathy undertones.

Romeo, a man.
Juliet, a maiden fair.
Friar John, a monk.

Act I: A Cycle.
Scene I: Pertinent Values.
[Enter Romeo]

[Enter Friar John]
Romeo: Listen to thy
heart. Thou art thyself.

Friar John: Thou art
as forthright as a songbird.
[Exit Friar John]

[Enter Juliet]
Romeo: Thou art as fair
as a violet.

Scene II: Questioning
Themselves. [Exit Juliet]
[Enter Friar John]

Friar John: Art thou
as just as the sum of me
and a nobleman?

Romeo: If so,
let us proceed to scene III.
[Exit Friar John]

[Enter Juliet]
Romeo: Thou art as good
as the product of

thyself and myself.
Juliet: Thou art as fierce
as the sum of an

eagle and thyself.
We must return to scene II.
Scene III: A Lengthy

Title for a Brief
Dénouement; Or, The Last Word.
[Exit Friar John]

[Enter Juliet]
Romeo: Open your heart.
[Exit Romeo]

Một trường hợp thử nghiệm (tưởng tượng):

Mặc dù độ dài của nó, chương trình này chỉ lấy một số nguyên làm đầu vào và cung cấp một số nguyên duy nhất làm đầu ra. Vì thế:

6 ↵ 720
7 ↵ 5040
0 ↵ 1    1 ↵ 1

("Sáu, bảy hai mươi. / Bảy, năm nghìn bốn mươi. / Không, một. Một, một.")


5
Tôi không chắc tôi cảm thấy thế nào về sự thật rằng tôi có thể nói đây là mã hợp pháp.
Randomra

12

Con trăn 2, 4 Haikus

Một chương trình Python 2 hoàn chỉnh haifac.py. Chạy nhưpython haifac.py <n>

#run this full program
import operator as\
op; import sys#tem

#please provide an arg
n = sys.argv[1]
def haifac (n):

    if n < 1:
        return 1#to me at once
    else:#do something else

        return op.mul(
            n, haifac(n - 1))
print haifac(int(n))

Phát âm:

chạy
toán tử nhập chương trình đầy đủ này như
hệ thống nhập khẩu op

vui lòng cung cấp một arg
n bằng sys arg v 1
xác định hai mặt n

nếu n ít hơn 1
trở lại từ 1 tới tôi cùng một lúc
khác làm cái gì khác

return op dot mul
n hai fac n trừ 1
in hai fac int n


1
Tôi thích việc sử dụng #to me at onceđể làm cho đồng hồ hoạt động ...
Floris

2
Và tôi thích dòng mới thoát ngay từ đầu :)
Julian H.

2
Tôi nghĩ rằng sử dụng bình luận là loại giống như gian lận.
Ypnypn

9

GolfScript, 2 Haikus

),{0>},{,,*}*

Đọc như haiku, liệt kê từng tổ hợp phím:

#close parenthesis
#comma open-brace zero
#greater-than close-brace

#comma open-brace
#comma comma asterisk
#close-brace asterisk

Với trường hợp thử nghiệm (5 haikus):

[1 2 3]4+          #generate the array [1 2 3 4]
{                  #start creating block
),{0>},{,,*}*      #actual factorial code
}%                 #close block and map across array (so that we should have [1! 2! 3! 4!])
[1 2 6]2.3**12++=  #generate the array [1 2 6 24] and check for equality

Đọc như haiku:

#open-bracket one
#space two space three close-bracket
#four plus open-brace

#close parenthesis
#comma open-brace zero
#greater-than close-brace

#comma open-brace
#comma comma asterisk
#close-brace asterisk

#close-brace percent-sign
#open-bracket one space two
#space six close-bracket

#two period three
#asterisk asterisk one
#two plus plus equals

8

Forth

: fugu 1              \ colon fugu one                = 5
swap 1 + 1 ?do        \ swap one plus one question do = 7
i * loop ;            \ eye star loop semi            = 5

Fugu là chức năng và nỗ lực của tôi tại kigo : blowfish là một tài liệu tham khảo mùa đông. Tôi dự định ?dokireji , bước ngoặt, trước vòng lặp được tính.


7

PHP, 4 haikus

Haikus tất cả trong vần điệu !

function haiku($can) { // function haiku can (5)
    if ($can == 1) // if can is equal to one (7)
        return ++$stun; // return increase stun (5)

    if ($can == 0) { // if can equals ou (5)
        echo "It is one, you know! "; //echo "It is one, you know! " (7)
        return 1+$blow; } //return one plus blow (5)

    if ($can > $fun) { //if can exceeds fun (5)
        return haiku($can-1) //return haiku can less one (7)
            *$can; }} //multiplied by can (5)

if (null == $knee) { // if null equals knee (5)
    $free=0+3; // free equals zero plus three (7)
    echo haiku($free); } // echo haiku free (5)

1
Tôi đọc dòng ba return plus plus stun.
corsiKa

Tôi thật sự thich cai nay.
BenjiWiebe

7

Khoảng trắng

Điều này làm cho việc sử dụng một trong haiku nổi tiếng nhất , và rất nhiều đã được viết về nó.

Không biết tại sao không ai làm điều này trước đây, nó thậm chí không mất bất kỳ nỗ lực nào!

Trước hết, trước khi đọc bài thơ, tôi muốn bạn ngả lưng, thư giãn và tận hưởng sự yên tĩnh được tạo ra bởi khoảng trống lớn xung quanh bài thơ. Nó nhấn mạnh ao, được bao quanh bởi một cảnh quan rộng lớn.

池    
飛 び こ               
の             






































































































































mã nguồn trên filebin

Trong trường hợp bạn không nói tiếng Nhật, điều này được phát âm như sau:

fu ru tôi ke ya

ka wa zu to bi ko mu

mi zu no o

Đương nhiên, nó được tính bởi morae. Các kireji làや( ya ) , các kigo (theo mùa tham khảo) là蛙( Kawazu , ếch, -> mùa xuân) .

Sử dụng trình thông dịch linux từ trang chính thức, bạn có thể sử dụng nó như thế này:

$ vang 5 | ./wspace .ws


6

Toán học

f[x_]:=     (* f of x defined *)
 x f[x-1]   (* x times f of x less 1 *)
f[1]=1      (* Mogami River *) 

Trẻ em có thể đọc dòng cuối cùng là "f của 1 là 1", nhưng tôi không thể cưỡng lại tiếng hét với Basho.

Kiểm tra:

Table[f[n],     (* Table f of n *)
 {n, 1, 10, 1}] (* n from 1 to 10 by 1 *)
ListLogPlot[%]  (* ListLogPlot output *)

Trở về:

(1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800)

biểu đồ nhật ký của các giá trị

Phần thưởng đặc biệt về ngôn ngữ học Haiku (lấy cảm hứng từ @cormullion)

Rewrite any term
High-level functions abound —
Mathematica

5

Mẻ

@set /a t=1 &^
for /L %%a in (2, 1, %1) ^
do @set /a t*=%%a

Phát âm ; bỏ qua các biểu thức toán học cũng như các ký hiệu @ / % ^ , ( )sau:

đặt ở 1 và
cho L a trong 2 1 1
đặt ata

Ghi chú; cái này tính toán giai thừa, nó không xuất ra nó - biến tchứa giai thừa.

Haiku / code sau đây có thể được thêm vào cùng một tệp bó để xuất giai thừa (các |'được phát âm là ống):

@echo %t% ||^
When will you learn, unclemeat ^
Why must you use Batch?

5

Clojure

(->> *command-line-args*                ; thrush com-mand line args
  seq last read-string range (map inc)  ; seq last read string range map inc
  (reduce *) println)                   ; re-duce times print-lin

5

ĐỤ#

let fact n =
    [1..n] |>
    Seq.fold (*) 1

hãy để thực tế của n là
từ một lên đến n, áp dụng
Seq dot gấp sao một


lấy trộm của tôi ...;)
Jwosty

5

newLISP

Các dấu ngoặc đơn không được phát âm:

(define (fac n (so))            ; define fac n so 
(if (= n 0) 1                   ; if equals n zero 1
(* n (fac (dec n)))))           ; times n fac dec n

(for (n 0 10)                   ; for n zero ten
; let's test from zero to ten
(println (fac n thus)))         ; printline fac n thus

Mã Lisp bao gồm

nhiều dấu ngoặc

và một vài chức năng


Yêu haiku bình luận. Lấy nó làm cảm hứng và thêm một câu trả lời của tôi.
Jonathan Van Matre

5

Perl

$r = 1; for(1           # r gets one for one
.. pop @ARGV) { $r *=   # to pop arg v r splat gets
$_; } print $r;         # the default print r

Bỏ cái này vào một tập tin có tên f.pl

Và đầu ra:

$ perl f.pl 3
6 $ perl f.pl 1-1
1 $ perl f.pl 10
3628800 $ 

Được đọc là:

perl fpl ba
perl fpl một ít hơn một
perl fpl ten

1
Làm thế nào để bạn phát âm các bài kiểm tra trong 7-5-7?
Christopher Creutzig

@ChristopherCreutzig Tôi có thể nhận được 5 và 6 trong đó để thử nghiệm ('perl fpl ba' (5) và 'perl fpl ze-ro' (6)) ... Tôi không thể tìm ra 7 cái rõ ràng cho thấy các xét nghiệm cần thiết.

@ChristopherCreutzig Tìm ra một mẹo cho nó. Cảm ơn bạn đã nhắc nhở tôi về yêu cầu đó. (Mặc dù, công bằng mà nói, 1-1 không thực sự kiểm tra '0', chỉ cho kết quả tương tự - mặc dù vậy nó cũng hoạt động với số không)

5

LiveScript

Thời trung cổ này:

prelude = ^^ do                       # prelude is clone do
  require \prelude-ls                 # require prelude dash ls
{ product } = prelude                 # product is prelude

story = (ah) ->                       # story is ah such:
  ones-misery = (one) ->              # one's misery is one such
    let death = product               # let death be product

      fight = [1 to one]              # fight is one to one
      why = (one) -> death <| fight   # why is one such death take fight
  ones-misery ah                      # one's misery ah

room = console.log                    # room is console log
room <| (story 10)!                   # room take story three bang
[null of { use : this }]              # no of use is this

Bản in 3628800, đó là 10!. Đó là một vòng xoay nhỏ: Hàm storytrả về một hàm ones-misery, luôn trả về câu trả lời. Đó là nghệ thuật theo cách đó.

Không có bình luận phụ hoặc chuỗi không cần thiết!


Câu chuyện gỡ lỗi tiền thưởng:

Tôi bật cười
khi được thông báo rằng một lỗi là
" deathundefined"


3
Haha, bạn sẽ không gặp phải lỗi đó nếu bạn có "cái chết =! Tự hào". poofoundation.org/poem/173363
Jonathan Van Matre

5

Haskell

Đây sẽ là một haiku vần điệu !

thực tế 0 = 1 - không chính xác là một
fact ton = ton * (fact stun) - chính xác tấn là ton lần thực tế stun
        trong đó stun = pre ton - where stun is pre ton

Vâng!

Lưu ý: Dự đoán có nghĩa là số trước đó. Ngoài ra trong haskell, bạn có thể có nhiều định nghĩa về hàm và định nghĩa đầu tiên được sử dụng.


Thanh lịch! (phụ)
mèo

4

Ruby - Một Haiku

ARGV.first.to_i.
 tap do |please| puts 1.upto(
 please ).inject( :*) end

Đọc (bỏ qua dấu câu, nhưng bao gồm một biểu tượng cảm xúc) như thế này:

 arg vee first to i
   tap do please puts one up to
 please inject smile end

Sản xuất không có đầu ra cho 0!.
200_success

@ 200_success: Cảm ơn. Tôi có thể phải sống với điều đó, nó không hoàn toàn theo yêu cầu, vì vậy tôi sẽ có một suy nghĩ
Neil Slater

Ngoài ra các bài kiểm tra có nghĩa là haiku. Tôi đã bỏ lỡ điều đó trong lần đầu tiên đọc bản thân mình.
Jonathan Van Matre

@Jonathan Van Matre: Vâng, tôi cũng nhớ nó. Có vẻ ngay cả những câu trả lời hàng đầu cũng không bận tâm với điều này. Vì tôi đang ở trên dòng lệnh, thật khó để có được nhiều dòng, tôi đoán tôi nên loại bỏ bài kiểm tra ngay bây giờ để làm cho nó trở thành một câu trả lời hợp lý mặc dù. . .
Neil Slater

4

Trong SML:

fun fact 0 = 1
  | fact n = n*fact(n-1)
  ;

đọc là:

"fun fact 0 is one,
bar that, fact n is n times
fact of n less one"

3

Perl

Tôi biết đó là trái với quy tắc sử dụng các chức năng làm sẵn, nhưng đây là những gì tôi nhận được.

Hãy tưởng tượng nhiệm vụ của bạn là hướng dẫn một loài gặm nhấm quá cỡ:

use Math::BigRat; use
feature 'say'; use warnings; say
new Math::BigRat($_)->bfac

Tôi chỉ có thể đoán từ cuối cùng có nghĩa là gì và cách phát âm của nó, nhưng tôi đảm bảo với bạn đó là một âm tiết. Rõ ràng anh ta không hiểu bạn muốn gì ở anh ta, vì vậy bạn phải giải thích (nới lỏng các tiêu chuẩn chất lượng khi bạn mất kiên nhẫn):

use Math::BaseConvert
':all'; no strict subs; no warnings;
reset and say fact($_)

vẫn không có kết quả Sau đó, bạn phải giải thích nó bằng tiếng Anh đơn giản:

no strict; no warnings;
use Math::Combinatorics;
say factorial($_)

Điều gì xảy ra tiếp theo tôi không biết, nhưng mã là hợp lệ:

perl -nE 'use Math::BigRat; use feature "say"; use warnings; say new Math::BigRat($_)->bfac'
42
1405006117752879898543142606244511569936384000000000

perl -nE 'use Math::BaseConvert ":all"; no strict subs; no warnings; reset and say fact($_)'
33
8683317618811886495518194401280000000

perl -nE 'no strict; no warnings; use Math::Combinatorics; say factorial($_)'
16
20922789888000

3
"Tôi đảm bảo với bạn đó là một âm tiết" :)
cormullion

1
Quá tệ, bạn không thể ném lỗi Coy vào đó.

Đây là câu trả lời duy nhất cho đến nay có bất kỳ chất lượng trữ tình nào :)
SebastianH

1
@SebastianH, cảm ơn :), mặc dù tôi đã gian lận trong khi những người khác cố gắng chơi theo luật
user2846289

2

Con trăn

lambda n: reduce(
    lambda a, b: a * b,
    range(1, n), n)

Cách tôi đọc nó:

lambda n: reduce
lambda a b: a times b
range 1 to n, n

`


Tạo đầu ra lỗi cho 0!.
200_success

2

C

#include <std\
io.h> 
#include \
<stdlib.h>

int main(int argc
 , char** argv)
{   // iteratively
    // compute factorial here
long int n = \
0, i \
= 0, r = \
1 /*
product starts at one*/;

if (argc 
> 1) { n = 
strtol(argv[\
1], NULL, 10)
; if (n 
< 0) {
       printf("Arg must\
       be >= 0\n");
       exit(-
    1);}
} i = 
n;
while (i) { r 
= r * i;
    i
--;
} /* print
the result*/ printf(
"%d factorial\
equals %d\
\n", n
, r);
/*done*/}

Phát âm:

pound bao gồm
I / O dot h
tiêu chuẩn bao gồm pound lib tiêu chuẩn h

int main int arg c
comma char star star arg v
open brace comment

lặp đi lặp lại
tính giai thừa ở đây
dài int n bằng

zero dấu phẩy i
bằng không dấu phẩy r
bằng một bình luận

sản phẩm bắt đầu tại một
dấu chấm phẩy nếu arg c
lớn hơn một

open brace n là
str-to-l của arg v sub
one dấu phẩy NULL dấu phẩy mười

dấu chấm phẩy nếu
n nhỏ hơn 0 bắt đầu
printf arg phải

lớn hơn hoặc
bằng dấu gạch chéo ngược 0 dấu
chấm phẩy

thoát âm
một dấu chấm phẩy kết
thúc dấu ngoặc kép i bằng

n dấu chấm phẩy
trong khi tôi mở nẹp r
bằng r lần i

dấu chấm phẩy tôi
giảm dấu chấm phẩy
đóng dấu ngoặc kép in

kết quả printf
phần trăm d giai thừa
bằng phần trăm d

whack n comma n
comma r dấu chấm phẩy
bình luận được thực hiện kết thúc cú đúp


#tự thường được phát âm sắc nét hoặc octothorpe trong mã C.
FUZxxl 3/03/2015

1

C # - 3 haikus

Tôi đã loại bỏ C # thông thường bằng cách sử dụng, không gian tên và lộn xộn định nghĩa lớp, đó sẽ là một haiku thứ 4.

public static void
Main(){int num = Convert.
ToInt32

(Console.ReadLine());
 Console.WriteLine(num ==
 0 ? 1 :

Enumerable.
Range(1, num).Aggregate
((i, j) => i * j));}

mà tôi đọc là

public static void 
Main int num equals Convert
To int thirty-two

Console dot Read line
Console Write line num equals
zero? then one, else

Enumerable
Range 1 to num aggregate
i j i times j

1

Haskell

module Haiku where          -- read literally.
fac x = let in do           -- = is read as 'equals'
product [1..x]              -- product one to x

lưu ý rằng mô-đun .. nơi được thêm tự động vào bất kỳ mã Haskell nào mà không có nó khi biên dịch, vì vậy không viết nó là thực tế gian lận.


Cho đến hôm nay tôi không biết bạn có thể nhập một tuyên bố dưới đây dovà nó không phải như vậy Monad a => a.
Onyxite

1

JAVA:

Để trả lời câu hỏi và cho Dwaiku (Double-Haiku hoặc bất cứ điều gì bạn muốn gọi nó) được đăng bởi Quincunx trong Java, đây là Haiku chính xác:

public static int factorial(int n) {
   return (n==0) ? (n+1) : (factorial(n-1) * n);
}

1

Javascript - Haikus

function factor (a) {          // function factor a
  if(!a){ return 1 ||          // if not a return 1 or
    a & 17}                    // a and seventeen

  else if (a + 1){             // else if a plus one 
    return a * factor          // return a into factor
    (a + ( - 1) )  }}          // a plus minus one 

Tôi không phải là người bản ngữ. Vì vậy, tôi đã sử dụng một từ điển để đếm các âm tiết. Hy vọng, nó đủ tốt. Mọi phản hồi đều được chào đón :)


1

Powershell, 2 Haikus

function facto ($num){    # function facto num
$i = 1; 1..$num|          # i equals one; i to num
foreach { $i =            # for each i equals

$i * $_}; write $i}       # i times this write i
$answer = facto $args[    # answer equals facto args
0]; write $answer         # zero write answer

1

Chúng tôi có được phép sử dụng phụ không?

Python 2 haikus:

number = num + 1
a = 13 + 4
b = 14

nuum = len([1])
for i in range(1, number):
    nuum *= i

nuum equals length one?
Pierre Arlaud

chiều dài của danh sách
Maltysen

Tôi đang yêu cầu phát âm của bạn về dòng đầu tiên. num equals length of the listthực hiện 7 âm tiết thay vì 5.
Pierre Arlaud

1
Bạn có thể thay thế nuumbằng foo(vì tôi đang đọc nếu như nu-um, điều này khiến bạn vượt quá giới hạn.)
ASCIIThenANSI

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.