Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-4041-8081-

Lisp IDE Request

Name: Anonymous 2013-03-08 18:43

Is there a Lisp IDE, which would to use GUI editable blocks to visualize SEXPs?

I.e. pushing +/- would fold/unfold subtree, while insert/del would add/remove an element to underlying form, and pressing enter would edit it.

And cursor arrow would be bound not to chars, but to the SEXP elements themselves. Just imagine how many keystrokes it will save you!

I know there are Emacs hacks, but they are completely foreign and inconvenient, compared to real IDE.

Name: Anonymous 2013-03-08 18:45

>>1
Also, ctrl-c/ctrl-v would copy/paste elements, without requiring to precisely mouse-select them.

Name: Anonymous 2013-03-08 19:03

Write your own

Name: Anonymous 2013-03-08 19:05

Just use Symta, it abstracts away the need for any of that anyways.

Name: Anonymous 2013-03-08 19:05

>>3
I'm already writing Symta.

Name: Anonymous 2013-03-08 19:15

>>4
Nope. Symta uses `;` to separate expressions, which impedes any GUI approach.

Name: Anonymous 2013-03-08 20:34

This would be fairly simple to implement in Textmate or Sublime Text.

Name: Anonymous 2013-03-08 20:58

>>7
Sublime Textmate works with text, not with SEXPs.

Name: Anonymous 2013-03-08 21:00

>>8
And it has no integration with SBCL/ACL/LW, required to provide runtime info (i.e. which symbol is a macro).

Name: Anonymous 2013-03-08 21:10

Name: Anonymous 2013-03-08 21:24

>>8
Yes, but SEXPs are text.

Name: Anonymous 2013-03-08 21:29

>>11
depends how you look at them.

Name: Anonymous 2013-03-09 7:20

>>10
Fucking hell, they found my site:
http://nimbusgarden.com/ben/_HCI_/

I better run!

Name: Anonymous 2013-03-09 9:16

>>13
Your site looks like tdavis homepage on speeds.

Name: Anonymous 2013-03-09 11:44

Revive climacs

Name: Anonymous 2013-03-09 12:20

>>15
Climacs is just a text editor.

Name: Anonymous 2013-03-09 13:08

>>16
climacs is a gui based, you just need to code in the sexp parsing which should be easy.

Name: Anonymous 2013-03-09 13:12

>>17
Climacs is a fucking dinosaur, based on Emacs, a notoriously bad and over-engineered text editor.

http://en.wikipedia.org/wiki/Featuritis

Name: Anonymous 2013-03-09 13:14

>>13
CS1234567

Name: Anonymous 2013-03-09 13:15

>>18
well what you want to do is going to lead to an over-engineered text editor that most likely won't even be as good as emacs

Name: Anonymous 2013-03-09 13:19

didn't some hipster make some clojure editor from public funding or w/e that lets you view your code as blocks?

Name: Anonymous 2013-03-09 13:27

>>20
I want just a SEXP editor, without any other functionality.

Name: Anonymous 2013-03-09 13:29

>>21
if you mean http://fsteeg.com/2012/02/26/visualize-clojure-code-in-eclipse-with-dot-and-zest/

then it looks like shit, because graphs are just retarded and unusable for editing.

Name: Anonymous 2013-03-09 13:50

So the main idea is to have main panel, displaying sexps and the right panel, displaying info on currently selected sexps. Moving crap should be 1-click. Without all these "M-C CTRL-V X"

Name: Anonymous 2013-03-09 13:52

>>24
i.e. everything should be mouse enabled, so it would work even on a tablet pc.

Name: Anonymous 2013-03-09 13:53

mouse

no thanks

by the sound of this you want some drag and drop LISP editor

Name: Anonymous 2013-03-09 14:02

>>26
Yeah!

Name: Anonymous 2013-03-09 14:50

>>25
Is that you, Abraham ``Javashit kike'' Goldberg?

Name: Anonymous 2013-03-09 14:58

>>28
No. I'm this antisemitic symta guy.

Name: Anonymous 2013-03-09 15:40

>>29
symta goy
fix

Name: Anonymous 2013-03-09 15:42

>>29
Shalom, hymie! Shalom, hymie!

Name: Anonymous 2013-03-09 19:42

>>23
No, >>21 meant Light Table: http://www.lighttable.com/

Name: Anonymous 2013-03-09 19:53

>>32
Cool. But
1. you still need a keyboard.
2. it doesn't replace parentheses with GUI blocks.

Name: Anonymous 2013-03-09 21:02

>>33
Why the fuck would you use a mouse over a keyboard, fagstorm?

Name: Anonymous 2013-03-09 22:47

>>1
I would make it for you, but I know you would never be satisfied. So instead, make it yourself. Ask questions here when you get stuck. etc. etc.

Name: Anonymous 2013-03-09 23:01

>>35
correction:
I would make it for you, but I know you would never be satisfied *with what I produce, since I am terrible at designing user interfaces that are intuitive and easy to use*.

Name: Anonymous 2013-03-10 8:04

>>34
IPhone has no keyboard.

>>35
Such and IDE would be a killer app, advertising Lisp to non-programmers, scared of parens and Emacs.

>>36
I am terrible at designing user interfaces
You just need windows 95 style 3d controls, stack on top of each other to represent AST + a list of common symbols (like if/lambda/let or variables in current lexical scope), which could be dragged to the SEXP pyramid. The only rule: it should be intuitive for non-programmers, so you will get a chance to sell list to a large target auditory, because no other language can get such GUI.

Name: Anonymous 2013-03-10 8:33

>>37
IPhone has no keyboard.
What?s your point?
killer app
Oh right, I should've stopped reading by then.

Name: Anonymous 2013-03-10 9:05

>>38
?

Name: Anonymous 2013-03-10 9:14

>>39
/prog/ doesn't like phone apps.

Name: Anonymous 2013-03-10 9:18

who would program on his phone anyway, it's pretty inconvenient regardless what gui you would use

Name: Anonymous 2013-03-10 9:22

Which reminds me, propositional logic rewriting into various normal forms is a great application of pattern matching. How the fuck does anyone not using a functional language cope?

Name: Anonymous 2013-03-10 9:25

>>42
I don't use function languages and have no idea what you are talking about. Enlighten me, please.

Name: Anonymous 2013-03-10 9:40

>>43
For instance
(match '(foo bar)
  (`(,x baz) x)
  (`(foo ,y) y))

returns bar. I'm not even going to attempt to write out the equivalent imperatively, because it'd take so damn long.

Name: Anonymous 2013-03-10 9:53

>>41
When the only thin you have is a phone...

Name: Anonymous 2013-03-10 10:16

>>45
When you own a smart phone but no desktop or laptop computer, you are a fucking moron.

Name: Anonymous 2013-03-10 10:27

>>46
The only reason I own a laptop is because most apps require a keyboard.

Name: Anonymous 2013-03-10 10:30

>>47
Then you are not a programmer and should not care about programming on a phone.

Name: Anonymous 2013-03-10 10:43

>>44
That was as cryptic as it was smug. I barely understood it, knowing Clojure, Scheme and a fair bit of Haskell.

>>43
You could have just Googled it, and you probably already have, but here's the gist: rather than writing a complicated decision tree as a mess of ifs and switches, you state the expression for the value you want to test, and match it against a series of patterns.

Take this one for instance, in Clojure:

(let [x 1 y 2 z 4]
  (match [x y z]
     [1 2 b] [:a0 b]
     [a 2 4] [:a1 a]))


It's rather intuitive, you have these three variables in order, x y z. If the first and second elements match up to 1 and 2, you return a vector containing :a0 (a Clojure value, of "keyword" type) and the third. These are matched in order, so though the second pattern would also fit, it's ignored. I don't know of a language where it doesn't work like that.

Each language has its own pattern syntax for its different types, Haskell can destructure and look into its Data types, which is quite powerful. You should look into that language for that and many other reasons.

So that's it. Now you are enlightened.

Name: >>49 2013-03-10 10:45

>>49
Forgot to mention that the example came from the documentation of the match pattern matching library for Clojure: https://github.com/clojure/core.match/wiki/Overview

Name: Anonymous 2013-03-10 10:50

>>49
You clearly don't know enough Clojure, Scheme or Haskell.

Name: Anonymous 2013-03-10 10:51

>>48
Stop being arrogant piece of shit. Lisp should be available to everyone on any device.

Name: Anonymous 2013-03-10 10:56

>>52
Any given device should have a purpose. Phones are undeniably not fit for the purpose of development.

HIBT?

Name: Anonymous 2013-03-10 11:05

>>52
well, you declared your goal as to bring lisp to non-programing masses with easy to use visual ide, not to bring it to those who refuse to use anything except smartphones

Name: Anonymous 2013-03-10 11:05

>>51
It's not my fault that your shit pattern matching library is so noisy. And having to back-quote and comma-evaluate the variables which you can use outside regardless is pig disgusting.

Name: Anonymous 2013-03-10 11:05

>>53
Phones are undeniably not fit for the purpose of development.
prove it.

Name: Anonymous 2013-03-10 11:06

>>54
Most normal people prefer tablet PCs and smartphones.

Name: Not >>53 2013-03-10 11:07

>>56
Shit screen, shit input, fixed ways to use installed programs?

Name: Anonymous 2013-03-10 11:08

>>58
prove it.

Name: Anonymous 2013-03-10 11:10

>>55
It isn't, and you don't have to backquote, I just decided to. Do you not use `, ever? If you do, how was it difficult to read?

Name: Anonymous 2013-03-10 11:12

>>56
mechanical keyboard is more convenient for typing a lot
they have too small screens for working with text
>>57
those people who don't own a pc/laptop wouldn't like to learn to code anyway, at least most of them and those who own wouldn't like to use phone-based app as their primary ide

Name: Anonymous 2013-03-10 11:18

>>60
Not much really. I guess that with literal syntax for vectors, there's not much use for that sort of expressions outside of macros.

Name: Anonymous 2013-03-10 11:18

>>61
mechanical keyboard is more convenient for typing a lot
Why would you want typing a lot?

they have too small screens for working with text
Why would you prefer text to graphics?

It is like you live in 60ies and mainframes are everywhere.

those people who don't own a pc/laptop wouldn't like to learn to code anyway
Stop being arrogant piece of shit. Lisp should be available to everyone on any device.

Name: Anonymous 2013-03-10 11:20

>>60
And if you're going to be writing stuff like (`(,, you might as well be using Symta.

Name: Anonymous 2013-03-10 11:20

IPhone Lisp IDE can replace traditional CAR symbol with a picture of a car and CDR would be replaced by some kuudere. No text input needed.

Name: Not >>61 2013-03-10 11:23

>>63
they have too small screens for working with text
Why would you prefer text to graphics?
It is like you live in 60ies and mainframes are everywhere.


That's just fucking trolling.

Name: Anonymous 2013-03-10 11:24

>>62
I guess it depends. I prefer `(atom ,var atom ,var atom) because it highlights the variables, but you could equally prefer (list 'atom var 'atom var 'atom) because it highlights the symbols.

>>64
Ha ha funny joke!

Name: Anonymous 2013-03-10 11:26

>>65
>CDR would be replaced by some kuudere

aww~

you should be careful about the licensing question though

Name: Anonymous 2013-03-10 11:26

>>66
You couldn't tell from the rest of the thread?

Name: Anonymous 2013-03-10 11:33

>>66
Stop trolling.

Name: Anonymous 2013-03-10 11:49

>>69
Up to that point, I just thought he was a retard.

>>67
Ah, I see it now. Yeah, the symbol type is so neglected in Clojure that I hadn't even thought of actually using lists of them, as to make [m]`(foo ,x)[m] useful. You never see them used in the documentation, or code listings in blogs... or in my own code or that of a friend. As I said, you rarely see that form outside of macros.

Name: Anonymous 2013-03-10 22:17

>>37
That is very neat. It reminds of me of something you would see in Lain. Consider it planned.

Name: Anonymous 2013-03-10 22:22

>>45
..everything looks like a number pad!

Name: Anonymous 2013-03-10 22:31

hi,

I need help making a c++ program for school.

The program deals with the game connect 4(http://en.wikipedia.org/wiki/Connect_Four). The game consists of a grid : 3 rows x 3 columns (or 9 cells) :
To identify each cell, we index them : Cell 1 is at the bottom-left
while cell 9 is at the top-right of the grid. Use only arrays of one
dimension.
There are two players (indexed by 1 and 2) who take turn to
drop one token (identified by the user index) in either column 1,
2 or 3, with the objective to align 3 of his/her tokens in a row,
in a column or in a diagonal. Both players are humans and the program will request the players to input the column where they wish to drop the token.

Implement your program with one input to get the column index where the player will drop the token. Your program must check that the selected column is not full; as long as the player keeps selecting a column that is full, the program must ask the same player for another input. After getting a valid column index, have your program update the state of the grid, display its content and determine if the game is over or not. If the game is not over, then it is the turn of the other player. And so on.
Here are (some of ) the tasks your flowchart needs to implement (you may add others) :
a) how does the program determine that the game is over (either all the 9 cells are filled and
there is no winner or one of the player aligns 3 tokens in a row, a column or a diagonal) ?
b) The players take turn to drop their tokens. How does your program determine who is the
next player to play and how does it identify the tokens (from player 1 or from player 2) in the grid ?
c) If a column is full (ie. 3 tokens are already in the that column), no player can drop another
token in that column. How does your program identify the column(s) where the next player can still
drop his/her token ?

I do know how to generate a random number between 1,2, and 3:

#include <cstdlib>
#include <iostream>
#include <time.h>
using namespace std;
int main(int argc, char *argv[])
{
srand ( time(NULL) );
int code = rand()%3 +1; // code will be 1, 2 or 3
cout << code<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

Thank you very much :)

Name: Anonymous 2013-03-10 22:34

>>74
make two new threads with your question.

Name: Anonymous 2013-03-10 22:37

>>74
Hello there, Kelagar.

Name: Anonymous 2013-03-10 22:51

>>74
hi

here's the solution for all the programming homeworks you could ever think of
http://mitpress.mit.edu/sicp/full-text/book/book.html
really man it's AWEOSME! i read it and i became an EXPERT programmer d00d! then my dick grew TEN FUKIN INCHES MAN! u really gotta try this i can feel the smell of wet pussy hi there suika let me show you my cons cell if u know what i mean ;) oh you dirty oni

Name: Anonymous 2013-03-10 23:44

>>77
yes

Name: Anonymous 2013-03-11 0:43

>>44
>>49
I can make a macro for that, in my non-functional Common Lisp

Name: Anonymous 2013-03-11 17:51

Cloud9 has lisp support.

Name: Anonymous 2013-03-11 18:08

>>79
The pattern matching I showed in my post was a feature provided by a third-party library, which yes, implements it as a buncha macros.

Likewise, Clojure's native destructuring of data structures is implemented as a function, invoked on the symbol by macros at that time when the macro fairy works her magic.

Name: Anonymous 2013-03-11 18:10

Name: Anonymous 2013-06-16 9:24

>>44

(match '(foo bar)
  (`(,x baz) x)
  (`(foo ,y) y))


if (bar == baz) return x;
if (foo == foo) /*what*/ return y;

Name: Anonymous 2013-06-17 5:18

>>83
EGIN!

Name: Anonymous 2013-06-17 5:41

>>83
That's wrong. But this is better:


return intern("bar");

Name: Anonymous 2013-06-17 5:52

>>85
Optimised!

static const char* const sclpcsszBar = "bar";

[...]
return sclpcsszBar;
[...]

Name: Anonymous 2013-06-17 5:57

Anyone suggested DrRacket to OP?

Name: Anonymous 2013-06-17 5:58

Name: Anonymous 2013-06-17 20:32

Name: Anonymous 2013-06-17 20:38


Don't change these.
Name: Email:
Entire Thread Thread List