Pyth는 어떻게 개선 될 수 있습니까? [닫은]


24

Pyth는 지속적으로 개발 중이며 새로운 기능이 항상 추가되고 있습니다.

Pyth를 더 나은 언어로 만들고 싶기 때문에 사람들이 찾고있는 기능을 알고 싶습니다.

이곳은 Pyth를 개선하기위한 포스트 아이디어입니다.

귀하의 답변에 다음을 기재하십시오.

  • 보고 싶은 내용이 변경 / 추가되었습니다.

  • 변경 사용 예

제안을 이행 할 계획이라면 의견을 말하겠습니다.

제안하려는 아이디어가 이미 제안되었는지 확인하십시오. 구현하려는 아이디어를 찬성하십시오.


구현 된 제안 :


이것은 질문 을 게시 할 때이 메타 질문 에 따라 주제 에 있었지만 더 이상 명확하지 않습니다.


1
왜 이것이 커뮤니티 위키입니까?
Geobits

4
더 많은 토론과 제안 모음입니다. Pyth 기능을 제안한 사람은 담당자를 얻거나 잃어서는 안됩니다. 또한 구현 된 제안은 삭제해야합니다. 이 관련 질문 은 또한 커뮤니티 위키입니다.
Dennis

9
이런 질문에 대해 어떻게 느끼는지 잘 모르겠습니다. PPCG는 아마도 Pyth의 사용자 기반의 대부분을 다룰 수 있기 때문에 여기서는 의미가 있음을 알 수 있지만 이슈 트래커로 사용해야한다는 것은 확실하지 않습니다. 메타 게시물에 대한 답변을 추가했습니다.
Martin Ender

이것이 메타가 아니어야합니까? 진심으로 얘들 아
Alec Teal

2
@AlecTeal "메타 프로그래밍 퍼즐 및 코드 골프 스택 교환은 사용자가 프로그래밍 퍼즐 또는 코드 골프 자체를 논의하기보다는 코드 골프 스택 교환의 작동 및 정책을 논의하는 사이트의 일부입니다." 메타는 특히이 커뮤니티에 관한 것입니다 . 그것은 실제로 메타에 속하지 않습니다. PPCG에 속하는지 여부는 현재 내가 링크 한 메타 게시물에서 논의 중입니다.
Martin Ender

답변:


7

중첩 루프

for루프 를 중첩 하려면 현재 F<var><seq>내부 V<seq>또는 그 반대로 사용하기 위해 바이트를 낭비해야합니다 . 루프를 중첩 할 때 루프에 사용되는 변수가 변경되는 람다와 동일한 것을 원합니다.


L예를 C들어 두 번째로 다시 정의 할 수있는와 같은 다른 것으로 확장 할 수도 있습니다 .
FryAmTheEggman


4

더 쉬운 모듈 가져 오기

지금까지 내가 사용 $했을 때마다 다음과 같았습니다.

$from <module> import <function> as <pyth-function-with-same-arity>$
for example:
$from unicodedata import name as neg$

예를 들어 이것을 요약 한 새로운 함수가있을 수 있습니다 .$.

.$"unicodedata""name""neg"
.$"unicodedata name neg"

또는 _M쉽지 않은 새로운 구문을 사용하는 것 :

_$unicodedata name$

또한 각 arity마다 하나의 기능에 단일 문자 매크로 이름을 지정할 수 있으므로 이러한 호출이 짧아 질 수 있습니다 ( _$옵션 제외 ).


4

슬리핑

이 문제의 원인이 여기에 , 그리고 mbomb007 @ Pyth에 대한 개선으로 넣어 제안했다 . 기본적으로 지금 당장 주어진 시간 (초) 동안 잠을 자려면 다음과 같은 작업을 수행해야합니다.

Q$__import__('time').sleep(Q)$

어느 정도 짜증나고 오랫동안.


날짜 함수를 사용하여 수면 동작을 시뮬레이션 할 수 있습니다. f>.d1Q0예를 들어 Q몇 초 동안 잠 들어 있습니다.
Jakube

@Jakube 항상 작동하지는 않습니다. 문서에 따르면 Unix에서는 프로그램이 얼마나 오랫동안 실행되었는지 반환합니다. 사용자가 입력 할 때 나쁜 것입니다.
kirbyfan64sos

이것보다 어떻습니까 : J.d0f>-.d0JQ0. 꽤 길지만 ... 수면 기능이 좋을 것입니다.
Jakube

4

더 많은 람다

이것은 실제로 FryAmTheEggman의 아이디어 이지만, 그것을 얻기 위해 게시하고 있습니다.

때로는 두 개의 다른 하나의 인수 람다를 사용하면 코드가 짧아지고 두 개의 인수 람다를 사용하지 않으면 코드가 줄어 듭니다.

가지고 좋은 것입니다 L, M친구는 다른 기능을 사용하는 모든 시간을 다시 정의; 예를 들어이 코드는 다음과 같습니다.

L*b2L*b3y5'5

컴파일 할 수 있습니다 :

@memoized
def subsets(b):
 return times(b,2)
@memoized
def read_file(b):
 return times(b,3)
imp_print(subsets(5))
imp_print(read_file(5))

물론 기능의 정확한 선택은 변경 될 수 있습니다.


3

다차원 배열 개선

다차원 배열을 사용하는 것은 현재 어려운 일입니다. 예를 들어 C 코드 A[B][C][D]@@@ABCDPyth로 변환됩니다 . 같은 뭔가 @A[BCD)훨씬 좋네요 (되지 않은 짧은 여기이기는하지만) 일 것이다. 동일하다 X; A[B][C][D] = E현재 X@@ABCDE가능할 때 XA[BCD)E입니다.


3

몇 가지 사소한 아이디어

  • 절대 차이, 즉 abs(val1 - val2). 현재는 .a-<val1><val2>입니다.
  • min/ max값입니다. 현재 그건 hS,<val1><val2>/ eS,<val1><val2>또는 그 이상의 값으로 같은 일. ( hS<seq>/ eS<seq>시퀀스 짧은 충분하다.)

3

Pyth 기능은 아니지만 그럼에도 불구하고 ...

Pyth 코드 모듈화

이것은 후드 아래의 Pyth에만 영향을 미칩니다. Pyth 구현의 일부는 상당히 지저분합니다. 많은 전역 변수와 다른 해키 것들.

며칠 전에 다른 Python 스크립트에서 Pyth 구현의 일부 기능 (예 : Pyth 명령 문자열 실행)을 사용해 보았을 때 정말 좌절했습니다.

다음과 같은 것이 좋을 것입니다.

from pyth import execute_pyth
print(execute_pyth(code='sQ', input='[1, 2, 3]'))

글쎄, 이것은 단지 Pyth5에 대한 도움 요청이라고 생각합니다.



1

독특한 요소

Pyth는 현재 시퀀스의 고유 요소를 얻는 짧은 방법이 없습니다. 당신은 할 수 있습니다 테스트 가 독특한 경우,하지만 당신은 실제로 고유 한 아이템을 얻을 수 없습니다. 현재 가장 짧은 방법은 다음과 같습니다.

{.-Q{Q

6 바이트! 고유 한 요소를 얻는 것이 1 바이트 조작 인 K와 비교하십시오 =x.

아마도 .}여기서 작동할까요?


어떤 유스 케이스 (at one challenge 이외)를 생각하고 있습니까?
isaacg

@isaacg 나는 꽤 기억하지 못하지만, 전에 목록의 고유 한 요소를 가져 와야하고 다른 것을 사용해야했습니다 (항상 더 길었습니다).
kirbyfan64sos

저는 Pyth 프로그래머는 아니지만 GolfScript / CJam에서 항상 실행됩니다 .&. _&많은 답변에 나타납니다. 매우 유용합니다.
Lynn

1
이것과 어떻게 {Q다릅니 까?
isaacg 2016 년

1
@isaacg 분류되었습니다
Ypnypn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.