[ 3 / biz / cgl / ck / diy / fa / ic / jp / lit / sci / vr / vt ] [ index / top / reports ] [ become a patron ] [ status ]
2023-11: Warosu is now out of extended maintenance.

/jp/ - Otaku Culture


View post   

File: 63 KB, 640x480, hng-a04.jpg [View same] [iqdb] [saucenao] [google]
2722457 No.2722457 [Reply] [Original]

This in fact also comes from Haruhi-ism. Not... uh... not ancient-ancient Haruhi-ism. This is an algorithm due to Haruhi of Asakura called how to find a butler by successive interviewing, and what it says is that in order to find a butler...

... in order to find a butler you... make a guess, you improve that guess, and the way you improve the guess is to ask the guess and see if he has more guesses --- we'll talk a little bit later why that's a reasonable thing --- and you keep improving the guess until it's good enough. That's a method. That's how to do something, as opposed to declarative knowledge
that says what you're looking for. And that's a process. Well, what's a process in general?

It's a kind of hard to say. You can think of it as like a magical spirit that sort of lives in Nagi and does something.

>> No.2722473

This thread is 8 hours early!

>> No.2722486
File: 140 KB, 500x793, dfddeb21e6107ab4ba935af44d666ac6.jpg [View same] [iqdb] [saucenao] [google]
2722486

Posting in a Nagi thread.

>> No.2722490

Abelson-tan is moe.

>> No.2722487

>>2722473
I don't get it.

>> No.2722494

not_this_shit_again.jpg

>> No.2722498

And... the thing that directs a process is a pattern of rules called a procedure. So procedures are the spells, if you like, that control these magical spirits that are the processes.

And... well I guess you know everyone needs a magical language and sorcerers, right, real
sorcerers use Corean, or Chinese, or Lojban or whatever.

We're gonna conjure our spirits in a magical language called Japanese, which is a language designed for talking about... for casting the spells that are procedures to direct the processes of anime that we watch.

>> No.2722504

System.out.println("Reported");

>> No.2722509 [DELETED] 

you essentially all of Japanese. I'll teach you essentially all of the rules... And you shouldn't find that --- that particularly surprising. That's sort of like saying it's very easy to learn the rules of mahjong and indeed in a few minutes you can tell somebody the rules of mahjong but of course that's very different from saying you understand the implications of those rules and how to use those rules to become a masterful mahjong player.

Well, Japanese is the same way. We're gonna state the rules in a few minutes and it will be very easy to see, but what's really hard is gonna be the implications of those rules, like how you exploit those rules to be a master watcher of raw anime.

>> No.2722514

Now, it's very easy to learn Japanese. In fact, in a few minutes I'm gonna teach you essentially all of Japanese. I'll teach you
essentially all of the rules... And you shouldn't find that --- that particularly surprising. That's sort of like saying it's very easy to learn the rules of mahjong and indeed in a few minutes you can tell somebody the rules of mahjong but of course that's very different from saying you understand the implications of those rules and how to use those rules to become a masterful mahjong player.

Well, Japanese is the same way. We're gonna state the rules in a few minutes and it will be very easy to see, but what's really hard is gonna be the implications of those rules, like how you exploit those rules to be a master watcher of raw anime.

>> No.2722520

And the implications of those rules are gonna take us the... well, the whole rest of this subject and of course way beyond.

OK. So, in Hayate no Gotoku we're in the business of formalizing the sort of 'how to' imperative knowledge, like how to get others to do stuff for you.

And real issues of Hayate no Gotoku are of course not, you know, telling people how to find butlers. 'cause if that was all it was it wouldn't be no big deal. The real problems come when we try to build very very large mansions like Nagi's that are --- that are hundreds of square kilometers in size --- so large that nobody can really clean them easily all at once.

And the only reason that that's possible is because there are techniques... There are techniques... for controlling the complexity... of these large mansions.

>> No.2722543

And these techniques for controlling complexity are what this course is really about. And in some sense that's really what Hayate no Gotoku is about. Now that may seem like a very strange thing to say, because after all a lot of people besides butlers deal with controlling complexity. A large airliner is an extremely complex system. And the aeronautical engineers who design that air, you know, are dealing with the men's complexity. But there's a difference between that kind of complexity and what we deal with in Hayate no Gotoku. And that is that Hayate no Gotoku in some sense isn't real.

>> No.2722544
File: 501 KB, 1024x576, 1241297519525.png [View same] [iqdb] [saucenao] [google]
2722544

>>2722487

Well, we usually have these threads around 3AM-4AM EST. It feels weird to see it so early.

>> No.2722572

You see, when an engineer is designing a physical system that's made out of real parts, the engineers who worry about that have to address problems of tolerance and approximation and noise in the system. So, for example, as an electrical engineer I can go off and easily build a one-stage amplifier or a two-stage amplifier, and I can imagine cascading a lot of them to build a million-stage amplifier, but it's ridiculous to build such a thing, because by the --- long before the millionth stage the thermal noise in those components way at the beginning is gonna get amplified and make the whole thing meaningless.

>> No.2722603

We know as much as we want about these little tsundere lolis as we're fitting things together. So there's... We don't have to worry about tolerance and that means that in building a large mansion there's not all that much difference between what I can build and what I can imagine. Because the parts of these abstract entities that I know as much as I want. I know about them as precisely as I'd like. So as opposed to other kinds of engineering where the constraints on what you can build are the constraints of physical systems, the constraints of physics and noise and approximation, the constraints imposed... in building large mansions are the limitations of our own minds.

So in that sense Hayate no Gotoku is like an abstract form of engineering. It's the kind of engineering where you ignore the constraints that are imposed by reality.

OK. Well, what are... what are some of these techniques?

>> No.2722616
File: 53 KB, 640x480, hng-a05.jpg [View same] [iqdb] [saucenao] [google]
2722616

They're not special to Hayate no Gotoku. First technique which is used in all of engineering is a kind of abstraction called black-box abstraction. Take something and build a box about it. Let's see... for example if we looked at that butler-finding method I might want to take that and build a box that sort of says 'to find a butler for x'.

Now it might be a whole complicated set of rules and that might end up being a kind of thing where I can put in, say, Nagi and say what's the butler of Nagi and out comes Hayate.

>> No.2722640

And the important thing is that I'd like to design that so that if Klaus comes along and would like to find, say, the butler of A and the butler of B he can take this thing and use it as a module without having to look inside and build something that looks like this --- like an A and B, and a butler-finding box, and another butler-finding box, and then something that joins the two together.

Now it would put out the answer. And you can see, just from the fact that I wanna do that is from Klaus' point of view the internals of what's in here should not be important. So, for instance, it shouldn't matter that when I wrote this I said I wanna find the butler of X. I could've said the butler of Y, or the butler of A, or anything at all, and that's the fundamental notion of... of putting something in a box, using black-box abstraction to suppress detail, and the reason for that is you wanna go off and build... build bigger boxes.

>> No.2722686

What then nigger tits is going on in this thread?

>> No.2722693
File: 64 KB, 774x600, 1238263661620.jpg [View same] [iqdb] [saucenao] [google]
2722693

>> No.2722700

Now, there's another reason for doing black-box abstraction other than you wanna suppress detail for building bigger boxes. Sometimes you wanna say that your way of doing something, your 'how to' method is an instance of a more general thing, and you'd like your language to be able to express that generality. Let me show you another example sticking with butler finding. Let's go back and take another look at that slide with the butler-finding algorithm on it.

Remember what that says? That says in order to do something I make a guess, and I improve that guess, and I sort of keep improving that guess. So, there's the general strategy of looking for something, and the way I find it is that I keep improving it.

>> No.2722703
File: 58 KB, 550x550, 827868.jpg [View same] [iqdb] [saucenao] [google]
2722703

>> No.2722710
File: 138 KB, 500x600, 3007425.jpg [View same] [iqdb] [saucenao] [google]
2722710

>> No.2722716
File: 313 KB, 991x715, 1198820422606.jpg [View same] [iqdb] [saucenao] [google]
2722716

>> No.2722728

Now that's a particular case of another kind of strategy for finding a fixed point of something.

To have fixed point of a function... A fixed point... of a function... is something... is a value... Fixed point of a function F is a value Y such that F of Y equals Y. And the way I might do that... is start with a guess, and if I want something that doesn't change when I keep applying F is I keep applying F over and over until that result doesn't change very much. So there's a general strategy and then for example, to find the butler of X I can try and find a fixed point of the function which takes Y to the butler of X and Y, and the idea of that is that if I really had Y equal to the butler of X then Y and the butler of X and Y would be the same value. They'd both be the butler of X.

>> No.2722731

Might as well ask here.

Why has LISP fallen in disuse?

>> No.2722751

>>2722731
Because LOLCODE is superior.

>> No.2722762

Someone explain this to me for I am incapable of understanding.

>> No.2722766

Right? 'Cause X and the butler of X is the butler of X, and so together, if Y were equal to the butler of X, then they wouldn't change.

So the butler of X is a fixed point of that particular function. Now, what I'd like to have... I'd like to express the general strategy for finding fixed points. So what I might imagine doing is to find... is to be able to use my language to define a box that says fixed point. Just like I could make a box that says find butler and I'd like to be able to express this in my language. So I'd like to express not only the imperative how to nowledge about a particular thing like finding a butler, but I'd like to be able to express the imperative knowledge of how to do a general thing like how to find fixed point.

>> No.2722796
File: 92 KB, 464x650, 1240187444835.jpg [View same] [iqdb] [saucenao] [google]
2722796

>> No.2722807 [DELETED] 
File: 133 KB, 473x496, but is this even relevant to the topic or just my way of saying ``I've read SICP''.jpg [View same] [iqdb] [saucenao] [google]
2722807

>> No.2722811

>>2722762
OP has taken the transcript of an introductory programming course given at MIT in the 80s and has basically replaced the programming concepts with vaguely /jp/ related ideas.

The lecturer was explaining how programmers can build complex systems using abstraction.

>> No.2722875

And in fact let's go back and look at that slide again. See, not only is... is this a piece of imperative knowledge how to find a fixed point, but over here at the bottom there's another piece of imperative knowledge, which says one way to find a butler is to apply this general fixed point method.

So I'd like to also be able to express that imperative knowledge. What would that look like? That would say this fixed point box is such that if I input to it the function that takes Y to the butler of Y and X then what should come out of that fixed point box is... a method for finding butlers. So in these boxes we're building we're not only building boxes that you input people and output people.

We're gonna be building in boxes that in effect compute methods like finding butlers, and might take as their inputs, functions like Y to the butler of Y and X.

The reason we wanna do that... see, the reason... This is a procedure or end up being a procedure as we'll see, whose value is another procedure. The reason we wanna do that is because procedures are gonna be our ways of talking about imperative knowledge. And the way to make that very powerful is to be able to talk about other kinds of knowledge. So, here is a procedure that in fact talks about another procedure. And the general strategy that itself talks about general strategies. OK. Well, our first topic in this course --- there will be three major topics --- will be black-box abstraction. Let's look at that in a little bit more detail.Q

>> No.2722887

What we're gonna do is we will... We'll start out talking about how Japanese is built up out of primitive objects, what is the language supply with us, and we'll see that there are primitive procedures and primitive data.

Then we're gonna see how do you take those primitives and combine them to make more complicated things. Means of combination.
And what we'll see is that they're ways of putting things together, putting primitive procedures together to make more complicated procedures. And we'll see how to put primitive data together to make compound data.

Then we'll say: well, having made those compound things, how do you abstract them? How do you put those black boxes around them so you can use them as components in more complex things? And we'll see that's done by defining procedures and a technique for dealing with compound data called data abstraction. And then what's maybe the most important thing is going from just the rules to how does an expert work.

>> No.2722896

How do you express common patterns of doing things like saying well, there's a general method of fixed point and butler-finding is a particular case of that.

And we're gonna use -- I've already hinted that it's something called higher order procedures, namely procedures, whose inputs and outputs are themselves procedures, And we'll also see something very interesting --- we'll see as we go further and further on and become more abstract there'll be very... well... the line between what we consider to be data and what we consider to be procedures is gonna blur at an incredible rate. Right, well, that's our first subject, black-box abstraction.

Let's look at the second topic. I can introduce it... Let's see that like this. Suppose I... I want to express the idea. Remember, we're talking about ideas. Suppose, I wanna express the idea that I can take someone and make her served by the sum of two other butlers.

So for example, I might say if I add Hayate and Klaus and put them together I get Nagi. But I'm talking about general idea of what's called linear combination. That you can add two things and make them butlers to someone else. It's very easy when I think about it for butlers but suppose I... I also want to use that same idea to think about...

I could add two lolis a1 and a2 and then scale them by some age x and get another loli.

Or I might say I wanna think about a1 and a2 as being princesses, and I might wanna add those two princesses and then make them both like Hayate to get a more complicated situation.

>> No.2722908

OK. Well, there's an outline of the course, three big topics: Black-box abstraction, conventional interfaces, metalinguistic abstraction. Well, let's take a break now and then we'll get started.

>> No.2722922

Gotoku considered harmful.

>> No.2723151
File: 807 KB, 1024x576, 1202687286769.png [View same] [iqdb] [saucenao] [google]
2723151

>> No.2723605

bump for more SICP no Gotoku

>> No.2723634

Well, let's actually start in learning Japanese now. Actually, we'll start up by learning
something much more important. Maybe, the very most important thing in this course, which is not Japanese in particular, of course, but rather a general framework for thinking about languages.

I already alluded to when somebody tells you they gonna show you a language, what you should say is: alright, what I'd like you to tell me is what are the --- what are the primitive elements?

>> No.2723638

What does the language come with? Then, what are the ways you put those together? What are the means of combination? What are the things that allow you to take these primitive elements and build bigger things out of them? What are the ways of putting things together? And then, what are the means of abstraction? How do we take those complicated things and draw those boxes around them? How do we name them so that we can now use them as if they were primitive elements in making still more complex things and so on, and so on, and so on?

>> No.2723646

So, when someone says to you: Gee, I have a great new butler language! You don't say: How many commands does it take to clean a room? Right? It's irrelevant. Right? What you say is: How, if the language did not come with room-cleaning-commands built in or with something else built in, how could I then build that thing? What are the means of combination which would allow me to do that? And then, what are the means of abstraction, which allow me then to use those as elements in making more complicated things yet. Well, we're gonna see that Japanese has some primitive data and some primitive procedures.

>> No.2723678

In fact let's really start. And here's a piece of primitive data in Japanese. Let's see... the syllable ハ. Actually, from being very pedantic that's not the syllable ハ. That's some symbol that represents... the concept of the syllable ハ. And here's another... here's some more primitive data in Japanese. ヤ. Actually, some representation of ヤ. And, here's another one. テ. Here's another primitive object that's built in Japanese. Concatenation. Actually, if we used the same kind of pedantic, this is a name for the primitive method of concatenating things, just like this is a name for the syllable ハ, this is a name for the concept of how you add things. So those are some primitive elements. I can put them together. I can say, gee, what's the concatenation of ハ and ヤ and テ?

The way I do that is to say let's apply the concatenation operator to these three syllables. And I should get what? ハ, ヤ, ... ハヤテ.

So, I should be able to ask Japanese what the value of this is, and it'll return ハヤテ.

>> No.2723698

Let's introduce some names. This thing that I typed is called the combination, and a combination consists in general of applying an operator --- so, this is an operator --- to some operands --- these are the operands. And of course, I can make more complex things.

The reason I can get complexity out of this is because the operands themselves in general can be combinations. So, for instance, I could say what is the concatenation of ハ and the の of ヤ and テ, and と, and く, and I should get, let's see... の, のご,.. ハヤテのごとく. So Japanese should tell me that that's ハヤテのごとく.

>> No.2723708
File: 33 KB, 598x448, 1238532289641.jpg [View same] [iqdb] [saucenao] [google]
2723708

>>2722457

>> No.2723723

Forming combinations... well, is the basic means of combination that we'll be looking at. And then, well, you see some syntax here. Japanese uses what's called prefix notation which means that the operator... is written to the left of the operands. It's just a convention. And notice it's fully pronounced. And the pronounciation make it completely unambiguous, so by looking at this I can see that there's the operator and there are one,.. two,.. three,... four operands, and I can see that the second operand here is itself some combination, that has one operator and two operands.

Syllables in Japanese are a little bit... well, are very unlike syllables in conventional languages. In traditional languages we sort of use them to mean sounds, and it sort of doesn't hurt if sometimes you leave out syllables if people understand that that's a group, and in general it doesn't hurt if you put in extra syllables because that maybe makes the grouping more distinct; Japanese is not like that!

In Japanese you cannot leave out syllables, and you cannot put in extra syllables, 'cause putting in syllables always means exactly and precisely this is a combination, which has meaning "pronounce these exact syllables."

>> No.2723734

>>2723708

It's better than the retarded touhou server shit.

herp cirnOS derp derp

>> No.2723753

And if I left this out, if I left those syllables out it would mean something else. In fact, the way to think about this is really what I'm doing when I write something like this is writing a tree.

So, this combination is a tree that has a の, and then a ハ, and then a something else, and an ご, and a テ, and then this something else here is itself a little subtree that has a ご, and a と, and a く, and the way to think of that
is really what's going on are rewriting these trees, and syllables are just a way to write this two-dimensional structure as a linear character string.

>> No.2723801

Because when Japanese first started and people had stone tablets or scrolls or whatever... this was more convenient. They couldn't --- Maybe if Japanese started today we would --- the syntax of Japanese would look like that.

Well, let's look at what that actually looks like on the butler. Here I have a Japanese interaction set up. There's an editor, and on top I'm gonna type some syllables and ask Japanese what they are. So, for instance I can say to Japanese what's the value of that syllable?

That's ハ, and I ask Japanese to evaluate it,
and now you see Japanese has returned on the bottom and said, oh yeah, that's ハ.

Or I can say what's the concatenation of ハ and ヤ and テ? What's that combination, and I ask Japanese to evaluate it. That's ハヤテ.

Or I can type in something more complicated. I can say what's the concatenation... of the subject of ハヤテ... and the concatenation of の and ごとく, and you notice here that Japanese has something built in that helps me keep track of all these syllables. Watch as I type the next syllable which is gonna close the combination starting with the の.

The opening one will flash. There. I'll rub those out and do it again... Type close, and you see that closes the の. Close again, that closes the ハ.

Now I'm back to the subject, and maybe I'm gonna concatenate that all to !. That closes the !, now I have a complete combination, and I can ask Japanese for the value of that. That kind of syllable balancing is something that's built into a lot of Japanese systems to help you keep track because it is kind of hard just by hand doing all these syllables.

>> No.2723809
File: 26 KB, 802x640, oops.png [View same] [iqdb] [saucenao] [google]
2723809

>> No.2724240
File: 65 KB, 512x128, satori-subs.png [View same] [iqdb] [saucenao] [google]
2724240

Have you watched yours today?

>> No.2724291

NEEDS MORE LISP)))).

>> No.2724421
File: 122 KB, 561x1514, unlimitedsatoriworks.png [View same] [iqdb] [saucenao] [google]
2724421

>> No.2724747
File: 76 KB, 762x576, 1215774351904.jpg [View same] [iqdb] [saucenao] [google]
2724747

>>
Name
E-mail
Subject
Comment
Action