โปรแกรมและสมการหนึ่งซับหรือสองซับที่มีชื่อเสียงคืออะไร? [ปิด]


22

ฉันกำลังทดลองกับแพลตฟอร์มใหม่และฉันพยายามเขียนโปรแกรมที่เกี่ยวข้องกับสตริงที่มีความยาวไม่เกิน 60 ตัวอักษรและฉันต้องการเติมที่เก็บข้อมูลด้วยโค้ดขนาดเล็กที่มีชื่อเสียงหรือที่รู้จักกันดีและ สมการเนื่องจากการเขียนโปรแกรมและคณิตศาสตร์สอดคล้องกับธีมของซอฟต์แวร์ของฉัน รหัสสามารถเป็นภาษาใด ๆ และสมการจากวินัยคณิตศาสตร์ใด ๆ ตราบใดที่พวกเขามีความยาวน้อยกว่า 60 ตัวอักษร ฉันสงสัยว่าผู้คนจะแยกสมองออกมาสำหรับอันนี้

ตัวอย่างเช่น,

#include<stdio.h>
int main(){printf ("Hi World\n");return 0;}

แน่นอนว่า 60 ตัวอักษร!

ขอบคุณมากสำหรับภูมิปัญญาของคุณ!


22
ทำไมสมองถึงถูกเซ็นเซอร์? เราไม่สามารถเป็นผู้ใหญ่และไม่บอกทุกคนว่าพวกเขาทำได้และอ่านอะไรไม่ได้ ในบริบทนี้ brainf k ไม่ได้เป็นสิ่งลามก
ChaosPandion

2
ฉันสงสัยว่าคำถามนี้จะถูกปิด ลองปรับปรุงให้สร้างสรรค์ยิ่งขึ้น ดู: blog.stackoverflow.com/2010/09/good-subjective-bad-subjective
Maniero

8
@bigown: นี่เป็นอัตนัยที่ดีและสร้างสรรค์ มันไม่ต่างไปจากการขอใบเสนอราคาที่มีชื่อเสียง ที่จริงแล้วมันดีกว่าเพราะขอรหัส / สมการที่มีชื่อเสียง "เครื่องหมายคำพูด" :-)
Macneil

@ Macneil: ฉันคิดเหมือนกัน แต่คำถามไม่ดีก็สามารถปรับปรุงได้
Maniero

3
@ ใหญ่: จริงๆแล้วฉันไม่สามารถเห็นได้ว่าคำถามนี้จะมีโครงสร้างมากขึ้นได้อย่างไร ไม่ต้องสงสัยเลยว่าคุณเป็นอย่างนั้น แต่ถูกถามอย่างฉลาดมากคุณช่วยแนะนำการปรับปรุง @BeachRunnerJoe ได้ไหม? ฉันสนุกมากกับคำตอบและเรียนรู้มากมายจากพวกเขา ฉันชอบที่จะเห็นคำถามนี้เปิดใหม่
Joris Meys

คำตอบ:


34

รูทีนการคัดลอกสตริง C แบบคลาสสิกเป็นที่รู้จักกันโดยผู้คนจำนวนน้อยลง

while (*d++ = *s++);

3
ใช่มีชื่อเสียงมาก ... สำหรับทหารผ่านศึก!
BeachRunnerJoe

13
ในขณะที่ฉันเข้าใจว่ามันมี "ประวัติศาสตร์" ค่ารหัสมันน่ากลัวน่ากลัวดังนั้นความจริงที่ว่ามันตกอยู่ในการเลิกเป็นสิ่งที่ดี =)
โทมัส Bonini

9
ทหารผ่านศึก AC จะจดจำรูปแบบได้ทันที มันเป็นสำนวน C.
Barry Brown

6
คิดอยู่เสมอว่ามันยอดเยี่ยมอย่างไม่น่าเชื่อ
Maulrus

5
ฉันต้องบอกว่าฉันเห็นด้วยกับ @Kop ในเพียงไม่กี่ตัวอักษรก็แสดงข้อบกพร่องที่สำคัญของ lib มาตรฐานและความหมายของมัน หนึ่งในสิ่งที่ไร้สาระที่สุดคือสตริงถูกยกเลิก 0 แทนความยาวส่วนนำหน้า (ซึ่งปลอดภัยกว่าและกำหนดความยาวของสตริง O (1)) สิ่งที่สองคือ C ไม่มีค่าบูลีนจริง (ซึ่งแก้ไขif (alarm = red) launchNukes();-trap) Dijkstra จะถือว่ารหัสนี้เป็นอันตรายมากกว่า ฉันยอมรับว่ามันเป็นสิ่งจำเป็นสำหรับโปรแกรมเมอร์ C ที่จะเข้าใจโค้ดนี้เป็นอย่างน้อย แต่ฉันคิดว่ามันสำคัญกว่าสำหรับเขาที่จะรู้วิธีที่จะทำให้ดีขึ้น
back2dos

26

ไม่ใช่หนึ่งบรรทัด แต่ฉันนำเสนอข้อผิดพลาดล่าสุดของโลก:

    status = GetRadarInfo();
    if (status = 1)
      LaunchNukes();

2
นั่นเป็นหนึ่งในนั้น "โอ้ sh * t!" ข้อผิดพลาด
Tin Man

3
มันLaunchNukes();
hasen

1
หากที่ถูกเขียนเป็น: ถ้า (GetRadarInfo () = 1) {... } เราจะไม่ได้รับข้อผิดพลาดนี้เพราะมันไม่ได้รวบรวม ดังนั้นอย่าแนะนำตัวแปรกลางเสมอ
tactoth

22

ฉันเห็นเกมแห่งชีวิตของ Conway ใน APL ที่ลอยอยู่รอบ ๆ :

โบนัสพิเศษคือสิ่งนี้จะช่วยให้คุณจัดการยูนิโค้ดได้อย่างถูกต้อง


2
ฮ่า! นั่นเป็นสิ่งแรกที่ฉันคิดว่าเมื่อฉันเห็นรหัสของคุณดี!
BeachRunnerJoe

ว้าวน่าประทับใจมาก!
FinnNk

4
คำอธิบาย: youtube.com/watch?v=a9xAKttWgP4
jfs

15
และฉันคิดว่า Perl ดูเหมือนเสียงเส้น
ชายดีบุก

1
@Greg รอสักครู่ APL ใช้มากกว่าตัวอักษรโรมันและกรีกเพราะมีตัวอักษรและสัญลักษณ์ไม่เพียงพอ แบ็คสเปซ (เรียกอีกอย่างว่า "overstrike") ถูกใช้เช่นกันเพราะอักขระบางตัวจำเป็นต้องพิมพ์ที่ด้านบนของอักขระอื่น หนึ่งในนั้นคือสัญลักษณ์การแบ่งที่ด้านบนของสี่เหลี่ยมจัตุรัสซึ่งเป็นตัวแทนของเมทริกซ์ผกผัน (ถ้าผู้ประกอบการเอกหรือการคูณโดยเมทริกซ์ฤifษีถ้ามันถูกใช้เป็นตัวดำเนินการไบนารี)
Tangurena

19

รุ่นดัดแปลงหนึ่งที่มีชื่อเสียงของ Perl หนึ่งซับ:

/^.?$|^(..+?)\1+$/

การแสดงออกปกตินี้ตรงกับสตริงที่มีความยาวเป็นสำคัญ

รุ่นเดิมคือ:

/^1?$|^(11+?)\1+$/

ซึ่งจับคู่สตริงที่ประกอบด้วยจำนวนเฉพาะของ 1s


14

quicksort:

qsort []     = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)

หากรายการว่างเปล่าผลการเรียงลำดับจะเป็นรายการว่างเปล่า

หากรายการเริ่มต้นด้วยองค์ประกอบ x และส่วนที่เหลือของรายการคือ xs ผลลัพธ์ที่เรียงจะประกอบด้วยรายการที่เรียงลำดับซึ่งประกอบด้วยองค์ประกอบทั้งหมดใน xs น้อยกว่า x เชื่อมต่อกับองค์ประกอบ x เชื่อมโยงกับรายการเรียงลำดับของทั้งหมด องค์ประกอบใน xs ใหญ่กว่า x

(หรือกล่าวอีกนัยหนึ่ง - แบ่งเป็นสองกองทั้งหมดน้อยกว่า x และใหญ่กว่า x จัดเรียงทั้งคู่และสร้างรายการที่มีกองน้อยกว่าองค์ประกอบ x และกองใหญ่กว่า)

เอาชนะความเข้าใจของรุ่น C ได้ค่อนข้างง่าย


1
นี่คือ ML มาตรฐานหรือไม่ หรือ Haskell
Barry Brown

3
Haskell ฉันชอบความคิดของภาษา

ฉันชอบตัวเลือกการแบ่งพาร์ติชันqsort (x:xs) = qsort lesser ++ equal ++ qsort greater where (lesser,equal,greater) = part x xs ([],[x],[])
Kendall Hopkins

1
มีรุ่นนี้ใช้เดือยสุ่มแทนส่วนหัวของรายการหรือไม่ นั่นจะทำให้มันใกล้เคียงกับต้นฉบับของ CAR Hoare
Macneil

1
Hoare กล่าวว่า "รายการที่เลือก [เป็นองค์ประกอบแบบ pivot] ... ควรเป็นสิ่งที่ครองตำแหน่งที่ได้รับการระบุตำแหน่งสูงสุดของส่วนที่จะทำการแบ่งพาร์ติชันถ้ากลัวว่าจะเกิดผลลัพธ์ที่ไม่เป็นอันตราย รายการเริ่มต้นที่ถูกเลือกแบบสุ่มควรอยู่ในตำแหน่งที่มีการระบุถึงสูงสุด " เพื่อให้เป็นจริงกับ Hoare เราควรทำงานร่วมกับองค์ประกอบสุดท้ายไม่ใช่อันดับแรก

13
  1. ฟังก์ชั่น Ackerman การติดตั้งเวอร์ชั่น Ackermann-Péterควรมีขนาด 60 ตัวอักษร :)

  2. ค่าคงที่เลขฐานสิบหกที่น่ารักนี้: 0x5f3759df มันเป็นหัวใจของรหัส WTFing ที่สุดที่ฉันเคยเห็นที่: รวดเร็วผกผันราก

  3. ที่มีชื่อเสียงแลกเปลี่ยนแฮคเกอร์

  4. question = /(bb|[^b]{2})/


3
+1 สำหรับสแควร์รูทแบบผกผัน
Macneil

@Macneil Argh! ฉันแค่คิดถึงสิ่งนั้น
Mark C

13

เมื่อแรกที่ฉันคิดออกทุบตีทุบตีฉันคิดว่ามันหวานจริงๆ

:(){ :|:& };:

ว้าวนั่นเป็นเพียงความชั่วร้าย!
Macneil

ดูรอยยิ้มทั้งหมด! คุณสามารถเรียกสิ่งนี้ว่า "ระเบิดแห่งรอยยิ้ม!"
ทำเครื่องหมาย C

12
print "hello world\n";

และการสืบทอดดูเหมือนว่าจะเป็นที่นิยม :-)


1
+1: 'ที่มีชื่อเสียงที่สุด' ได้อย่างง่ายดาย - สมควรหรือไม่
Steven Evers

10

เนื่องจากคุณพูดถึงสมการสิ่งนี้จึงเป็นของคุณ:

e^{i\pi}+1=0

( Wolfram Alpha การแสดงผล : ei pi + 1 = 0)


ใช่แล้ว! Good ol 'Euler อีกหนึ่งคนที่ดี!
BeachRunnerJoe

ฉันจำได้ว่าเป็นe^{i/pi} = i^2
Josh K

@ Josh K: นั่นเป็นเพราะi² == -1เพื่อให้คุณสามารถรักษาความสมดุลของสมการโดยการลบหนึ่งจากทั้งสองฝ่ายถอด+1และเปลี่ยน=0ไป-1หรือ
Daenyth

7

วิธีตรวจจับตัวเลขได้:

x % 2 == 0

3
หรือ!(x%2)ในภาษาที่มีสติ
Christian Mann

8
หรือ!(x & 1)ในภาษาโดยไม่ต้องปรับให้เหมาะสม
jfs

1
@ คริสเตียนตัวเลขไม่ควรเป็นบูลีน - ง่ายเกินไปที่จะทำผิดพลาด

7

import this ใน Python


แก้ไขเนื่องจากความคิดเห็นไม่สามารถมีตัวแบ่งบรรทัด: สำหรับผู้ที่ไม่มี Python interpreter สะดวกนี่เป็นผลลัพธ์

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

ฉันเป็นผู้เริ่มต้น Python สิ่งนี้จะบรรลุผล?
Richard

1
@Richard: ลองเขียนสิ่งนี้ใน Python Interactive Interpreter :)
MAK

สิ่งนี้ทำให้ช่วงบ่ายวันอาทิตย์ของฉันสดใสขึ้น :)
Richard

@Richard คำถามที่จริงจัง: ถ้าคุณเรียกใช้มันจะทำให้คุณล้นสแต็คหรือไม่?
ทำเครื่องหมาย C

6

ไม่ใช่ 2 บรรทัด แต่ฉันจะบอกว่ามันมีชื่อเสียงมาก

void swap(float* x, float* y)
{
    float t;
    t = *x;
    *x = *y;
    *y = t;
}

ที่จริงบางภาษาสามารถอธิบายได้ในหนึ่งบรรทัด ลัวะเข้ามาในใจ แต่ยังมีอีกมาก

x, y = y, x

มีชื่อเสียงอย่างแน่นอน!
BeachRunnerJoe

7
ด้วย ints: a ^ = b ^ = a ^ = b;
JulioC

ฉันแค่อยากรู้อยากเห็นวิธีการนี มันสร้างตารางชั่วคราว (y, x), จากนั้นกำหนด x องค์ประกอบที่ 1 และองค์ประกอบที่ 2?
tactoth

นอกจากนี้ฉันยังสงสัยว่าผู้คนแลกเปลี่ยนค่าในการตั้งโปรแกรมชีวิตจริงบ่อยแค่ไหน
tactoth

1
@tactoth - การสลับเป็นปกติที่ใช้สำหรับการใช้งานที่ได้รับการยกเว้นอย่างปลอดภัยใน C ++
Kaz Dragon

6

ตัวอย่างแคลคูลัสแลมบ์ดาที่ชื่นชอบของฉันคือ Y combinator:

Y = λf.(λx.f (x x)) (λx.f (x x))

6

จากแบบฝึกหัดในK&Rนี่คือฟังก์ชันที่จะคืนค่าจำนวนบิตที่กำหนดในจำนวนที่กำหนด ที่ 58 ตัวอักษร:

int bits(int n){int b=0;while(n){n=n&(n-1);b++;}return b;}

ใช้เวลาตามสัดส่วนกับจำนวนบิตที่ตั้งไว้ ส่วน "อ่าฮา" ที่นี่ก็คือ

n = n & (n - 1)

nเอาบิตขวาสุดจากชุด


ยอดเยี่ยมการอ้างอิง K&R ที่ยอดเยี่ยม!
BeachRunnerJoe

6

Recursive Pascal's Triangle in One Line (Haskell)

  r n=take(n+1)$iterate(\a->zipWith(+)(0:a)$a++[0])[1]

ตัวอักษรห้าสิบสองเพิ่มช่องว่างเพื่อลิ้มรส มารยาทของ "ephemient" ในความคิดเห็นที่นี่

ฉันคิดว่านี่เป็นตัวอย่างที่ดีกว่า cryptic แต่เป็นคำตอบสั้น ๆ ในJและK (แม้ว่าฉันจะไม่ใช่ผู้ใช้ Haskell ก็ตาม)


6

Unix Roulette (อันตราย!)

ความอนุเคราะห์จากคำตอบของ Bigown ในเรื่องตลก (และความคิดเห็น):

[ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo Click #Roulette

(นั่นคือความยาว 62 ตัวอักษรดังนั้นคุณสามารถลบความคิดเห็น (มันจะทำงานได้อย่างไร?) หรือช่องว่างที่ไม่จำเป็น)


2
โปรดทำเครื่องหมายว่าเป็นอันตราย
Chinmay Kanchi

ฉันใช้ zsh และใช้งานไม่ได้นอกจาก s / == / - eq / :-)
defhlt


4
DO 10 I=1.3

นี่เป็นหนึ่งในข้อบกพร่องที่แพงที่สุดในประวัติศาสตร์ คำสั่ง Fortran นี้กำหนดค่าทศนิยม 1.3 ให้กับตัวแปรที่มีชื่อDO10Iตัวแปรที่มีชื่อ

รหัสที่ถูกต้อง - ส่วนหัวของคำสั่งวนซ้ำจนกว่าคำสั่งที่ระบุว่า 10 และตัวแปรลูปIยอมรับค่า 1, 2, 3:

DO 10 I=1,3

1
เหตุใดจึงเป็นข้อบกพร่องที่มีราคาแพง
Barry Brown

2
ข้อผิดพลาดนี้อยู่ในรูทีนย่อยที่คำนวณวิถีโคจรสำหรับการบินอวกาศเมอร์คิวรี่ปี 1961 อย่างไรก็ตามมันถูกจับและแก้ไขก่อนการเปิดตัวดังนั้นจึงไม่ใช่ข้อผิดพลาดที่มีราคาแพง มีข้อผิดพลาดที่คล้ายกันในภารกิจ Mariner นั่นคือไม่ก่อให้เกิดความล้มเหลวของภารกิจแม้ว่า (ที่มา: การเขียนโปรแกรมผู้เชี่ยวชาญ Cหน้า 31-32)
Darel

4

อุปกรณ์ของ Duff :

void send(short *to, short *from, int count)
{
    int n = (count +7 ) / 8;

    switch (count % 8) {
    case 0: do {    *to = *from++;
    case 7:         *to = *from++;
    case 6:         *to = *from++;
    case 5:         *to = *from++;
    case 4:         *to = *from++;
    case 3:         *to = *from++;
    case 2:         *to = *from++;
    case 1:         *to = *from++;
        } while(--n > 0);
    }
}

Tom Duff ยกเลิกการแมปพอร์ตหน่วยความจำที่เขียนลงใน C ที่แปลกประหลาดที่สุดที่สร้างขึ้นในโลก


มันไม่พอดีกับ 60 ตัวอักษร แต่มันก็เจ๋งมาก ฉันจำได้ว่ารู้สึกหนาวสั่นเมื่อเห็นชื่อของเขาเลื่อนไปมาในเครดิตของภาพยนตร์พิกซาร์บางเรื่อง
Macneil

2

ทุกสิ่งที่เกี่ยวกับ Hello World เป็นสิ่งสำคัญ คุณสามารถใช้รูปแบบที่แตกต่างกันหากคุณวางแผนที่จะเก็บหลายภาษา

สำหรับบางสิ่งบางอย่างมากขึ้นไม่น่ารำคาญมีFibbonacci


1
Fibbonacci คนดี! นี่คือรหัส ... ถ้า (k <2) return k; else return fib (k-1) + fib (k-2);
BeachRunnerJoe

1
@BeachRunnerJoe: คุณอาจต้องการที่จะรวมกับผู้ประกอบการเงื่อนไข;)
back2dos

3
ใช่แน่นอน! กลับมา (k <2)? k: ตอแหล (k-1) + ตอแหล (k-2);
BeachRunnerJoe

2
val (minors, adults) = people.partition(_.age < 18)

บรรทัดด้านบนของพาร์ติชันรหัสสกาล่าpeople(รายการPerson s) เป็นสองรายการตามอายุของพวกเขา

ใช้รหัสมากในการทำสิ่งเดียวกันใน Java:

List<Person> minors = new ArrayList<Person>();
List<Person> adults = new ArrayList<Person>();
for(Person p : people) {
  if(p.age < 18) {
    minors.add(p);
  } else {
    adults.add(p);
  }
}

2

การสลับค่าของตัวแปรสองตัวโดยไม่ใช้ตัวแปรตัวที่สาม นี่เป็นหนึ่งในสิ่งแรกในการเขียนโปรแกรมที่ฉันบอกและคิดว่า "อืม ... เยี่ยมมาก"

int a,b; 
b=a-b;
a=a-b;
b=a+b;

ฉันรู้ว่าคุณสามารถทำเช่นนี้โดยใช้XORs แต่นี่เป็นบิตของฉันของความคิดถึงสำหรับวันนี้ :)
Jonathon

แฮคเกอร์ไม่มีปัญหากับการโอเวอร์โฟลว์ ทำสิ่งนี้?
งาน

2

มนต์ดำจาก John Carmack

float Q_rsqrt( float number )
{
    long i;
    float x2, y;
    const float threehalfs = 1.5F;

    x2 = number * 0.5F;
    y  = number;
    i  = * ( long * ) &y;                       // evil floating point bit level hacking
    i  = 0x5f3759df - ( i >> 1 );               // what the ****?
    y  = * ( float * ) &i;
    y  = y * ( threehalfs - ( x2 * y * y ) );   // 1st iteration
//  y  = y * ( threehalfs - ( x2 * y * y ) );   // 2nd iteration, this can be removed

    return y;
}

2

จำนวนมากที่สุดที่สามารถแทนด้วย 8 ไบต์ (Python)

print '\n'.join("%i Byte = %i Bit = largest number: %i" % (j, j*8, 256**j-1) for j in (1 << i for i in xrange(8)))

1
  1. ผู้ประกอบการแบบมีเงื่อนไข :

    minVal = (a <b)? a: b;

  2. สลับกรณี

  3. for-each loop [Java]


1
ที่จริงแล้วโอเปอเรเตอร์ที่มีเงื่อนไขเป็นชื่อที่ถูกต้อง โอเปอเรเตอร์จะประกอบไปด้วยสามหากใช้อาร์กิวเมนต์สามตัว
back2dos

@ back2dos - แน่นอนทั้ง C # และ JavaScript เรียกสิ่งนี้ว่าโอเปอเรเตอร์ที่มีเงื่อนไข
ChaosPandion

@ back2dos - เดอะ: ผู้ประกอบการ? ไม่ใช้เวลาสามข้อโต้แย้งซึ่งเป็นเหตุผลว่าทำไมจึงเรียกว่าผู้ประกอบการที่ประกอบไปด้วย นี่เป็นคำศัพท์ที่ถูกต้องจาก C เป็นต้นไป (เห็นได้ชัดว่าเริ่มต้นจาก BCPL ตาม Wikipedia ... )
grkvlt

@grkvlt: ฉันไม่เคยบอกว่ามันไม่ได้ใช้เวลาสามข้อโต้แย้ง เป็นเพียงว่าคุณจะไม่เรียก!ผู้ประกอบการเอกหรือผู้ประกอบ+การไบนารี มันไม่แน่นอน
back2dos

1
@ back2dos - ฉันคิดว่านี่เป็นปัญหาของเรา - ฉันจะอ้างถึงแอปเปิ้ลว่า "ผลไม้" ในสถานการณ์นั้น แต่ฉันคิดว่าเรากำลังโต้เถียงไวยากรณ์ไม่ใช่การเขียนโปรแกรมไวยากรณ์ภาษาและคุณถูกต้องว่า?:เป็นตัวดำเนินการเงื่อนไข)
grkvlt

1

Quineนี้จากไฟล์ Jargonใน C:

char * f = "char * f = c%% s c%; หลัก () {printf (ฉ, 34, F, 34,10);} c%"; ​​หลัก () {printf (ฉ, 34, F, 34,10);}

นอกจากนี้ยังมี LISP รุ่นด้วยเช่นกัน แต่คุณสามารถค้นหาคนอื่น ๆ ที่ลอยอยู่ในภาษาใด ๆ ที่คุณสามารถถ่ายภาพ ...


1

ตัวตนของออยเลอร์ซึ่งเชื่อมโยงตัวเลขที่สวยที่สุดในจักรวาลคณิตศาสตร์: 1, 0, e, i และπ: e ^ i (π) + 1 = 0



1
int gcd(int a, int b)
{
   while(b>0)
   {
      int t = a%b;
      a=b;
      b=t;
   }
   return a;
}

อาจไม่มีชื่อเสียง แต่เป็นหนึ่งในรายการโปรดของฉัน ส่วนใหญ่แล้วจะไม่ปรากฏทันทีว่าทำไมมันทำงาน


1

นี่คือตัวละครมากกว่า 60 ตัว แต่ขึ้นอยู่กับการตั้งชื่อตัวแปร (ดังนั้นฉันรวมไว้ด้วย!)

ให้ readLines (rdr: StreamReader) =
      seq {ในขณะที่ไม่ได้ rdr.EndOfStream
                ให้ผลผลิต rdr.ReadLine ()}

ฟังก์ชั่นเล็ก ๆ น้อย ๆ ที่ดีในการอ่านไฟล์เป็นลำดับบรรทัดโดยบรรทัดใน F #

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.